优草派  >   Python

Python文件编译是什么?python文件编译详解

罗西汉            来源:优草派

为了加快python文件的加载速度,常常需要将python文件进行编译。那么python文件编译是什么,python文件编译有什么用。本文对此会有详细介绍,一起往下看看吧。

Python文件编译是什么?python文件编译详解

为了快速加载模块,Python把模块的编译版缓存在__pycache__目录中,文件名为module.version.pyc,version对编译文件格式进行编码,一般是Python的版本号。例如,CPython的3.3发行版中,spam.py的编译版本缓存为__pycache__/spam.cpython-33.pyc。使用这种命名惯例,可以让不同Python发行版及不同版本的已编译模块共存。

Python对比编译版本与源码的修改日期,查看它是否已过期,是否要重新编译,此过程完全自动化。此外,编译模块与平台无关,因此,可在不同架构系统之间共享相同的支持库。

Python在两种情况下不检查缓存。其一,从命令行直接载入模块,只重新编译,不存储编译结果;其二,没有源模块,就不会检查缓存。为了支持无源文件(仅编译)发行版本,编译模块必须在源目录下,并且绝不能有源模块。

在Python命令中使用-O或-OO开关,可以减小编译模块的大小。-O去除断言语句,-OO去除断言语句和__doc__字符串。有些程序可能依赖于这些内容,因此,没有十足的把握,不要使用这两个选项。“优化过的”模块带有opt-标签,并且文件通常会一小些。将来的发行版或许会改进优化的效果。

从.pyc文件读取的程序不比从.py读取的执行速度快,.pyc文件只是加载速度更快。

compileall模块可以为一个目录下的所有模块创建.pyc文件。

以上就是关于python文件编译是什么的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行