笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

6.1.3. “编译的” Python 文件

发布者: 笨鸟自学网

为了加快加载模块的速度,Python 会在 __pycache__ 目录下以 module.version.pyc 名字缓存每个模块编译后的版本,这里的版本编制了编译后文件的格式。它通常会包含 Python 的版本号。例如,在 CPython 3.3 版中,spam.py 编译后的版本将缓存为 __pycache__/spam.cpython-33.pyc。这种命名约定允许由不同发布和不同版本的 Python 编译的模块同时存在。

Python 会检查源文件与编译版的修改日期以确定它是否过期并需要重新编译。这是完全自动化的过程。同时,编译后的模块是跨平台的,所以同一个库可以在不同架构的系统之间共享。

Python 不检查在两个不同环境中的缓存。首先,它会永远重新编译而且不会存储直接从命令行加载的模块。其次,如果没有源模块它不会检查缓存。若要支持没有源文件(只有编译版)的发布,编译后的模块必须在源目录下,并且必须没有源文件的模块。

部分高级技巧:

  • 为了减少一个编译模块的大小,你可以在 Python 命令行中使用 -O 或者 -OO-O 参数删除了断言语句,-OO 参数删除了断言语句和 __doc__ 字符串。

    因为某些程序依赖于这些变量的可用性,你应该只在确定无误的场合使用这一选项。“优化的” 模块有一个 .pyo 后缀而不是 .pyc 后缀。未来的版本可能会改变优化的效果。

  • 来自 .pyc 文件或 .pyo 文件中的程序不会比来自 .py 文件的运行更快;.pyc 或 .pyo 文件只是在它们加载的时候更快一些。

  • compileall 模块可以为指定目录中的所有模块创建 .pyc 文件(或者使用 -O 参数创建 .pyo 文件)。

  • 在 PEP 3147 中有很多关这一部分内容的细节,并且包含了一个决策流程。

Python3编程手册
  1. Python 入门指南

  2. 1. 开胃菜

  3. 2. 使用 Python 解释器

  4. 2.1. 调用 Python 解释器

  5. 2.2. 解释器及其环境

  6. 3. Python 简介

  7. 3.1. 将 Python 当做计算器

  8. 3.2. 编程的第一步

  9. 4. 深入 Python 流程控制

  10. 4.1. if 语句

  11. 4.2. for 语句

  12. 4.3. range() 函数

  13. 4.4. break 和 continue 语句

  14. 4.5. pass 语句

  15. 4.6. 定义函数

  16. 4.7. 深入 Python 函数定义

  17. 4.8. 插曲:编码风格

  18. 5. 数据结构

  19. 5.1. 关于列表更多的内容

  20. 5.2. del 语句

  21. 5.3. 元组和序列

  22. 5.4. 集合

  23. 5.5. 字典

  24. 5.6. 循环技巧

  25. 5.7. 深入条件控制

  26. 5.8. 比较序列和其它类型

  27. 6. 模块

  28. 6.1. 深入模块

  29. 6.1.1. 作为脚本来执行模块

  30. 6.1.2. 模块的搜索路径

  31. 6.1.3. “编译的” Python 文件

  32. 6.2. 标准模块

  33. 6.3. dir() 函数

  34. 6.4. 包

  35. 7. 输入和输出

  36. 7.1. 格式化输出

  37. 7.2. 文件读写

  38. 8. 错误和异常

  39. 8.1. 语法错误

  40. 8.2. 异常

  41. 8.3. 异常处理

  42. 8.4. 抛出异常

  43. 8.5. 用户自定义异常

  44. 8.6. 定义清理行为

  45. 8.7. 预定义清理行为

  46. 9. 类

  47. 9.1. 术语相关

  48. 9.2. Python 作用域和命名空间

  49. 9.2.1. 作用域和命名空间示例

  50. 9.3. 初识类

  51. 9.4. 一些说明

  52. 9.5. 继承

  53. 9.6. 私有变量

  54. 9.7. 补充

  55. 9.8. 异常也是类

  56. 9.9. 迭代器

  57. 9.10. 生成器

  58. 9.11. 生成器表达式

  59. 10. Python 标准库概览

  60. 10.1. 操作系统接口

  61. 10.2. 文件通配符

  62. 10.3. 命令行参数

  63. 10.4. 错误输出重定向和程序终止

  64. 10.5. 字符串正则匹配

  65. 10.6. 数学

  66. 10.7. 互联网访问

  67. 10.8. 日期和时间

  68. 10.9. 数据压缩

  69. 10.10. 性能度量

  70. 10.11. 质量控制

  71. 10.12. “瑞士军刀”

  72. 11. 标准库浏览

  73. 11.1. 输出格式

  74. 11.2. 模板

  75. 11.3. 使用二进制数据记录布局

  76. 11.4. 多线程

  77. 11.5. 日志

  78. 11.6. 弱引用

  79. 11.7. 列表工具

  80. 11.8. 十进制浮点数算法

  81. 12. 虚拟环境和包

  82. 12.1. 简介

  83. 12.2. 创建虚拟环境

  84. 12.3. 使用 pip 管理包

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-7-27 18:40 , Processed in 0.039632 second(s), 17 queries .

© 2001-2020

返回顶部