32.10. py_compile — 编译 Python 源文件
模块提供了用来从源文件生成字节码的函数和另一个用于当模块源文件作为脚本被调用时的函数。
虽然不太常用,但这个函数在安装共享模块时还是很有用的,特别是当一些用户可能没有权限在包含源代码的目录中写字节码缓存文件时。
exception
当编译文件过程中发生错误时,抛出的异常。
py_compile.compile
(file, cfile=None, dfile=None, doraise=False, optimize=-1)
如果 cfile 所表示(显式指定或计算得出)的路径为符号链接或非常规文件,则将引发 FileExistsError。 此行为是用来警告如果允许写入编译后字节码文件到这些路径则导入操作将会把它们转为常规文件。 这是使用文件重命名来将最终编译后字节码文件放置到位以防止并发文件写入问题的导入操作的附带效果。
optimize 控制优化级别并会被传给内置的 函数。 默认值 -1
表示选择当前解释器的优化级别。
在 3.2 版更改: 将 cfile 的默认值改成与 PEP 3147 兼容。 之前的默认值是 file + 'c'
(如果启用优化则为 )。 同时也添加了 optimize 形参。
在 3.4 版更改: 将代码更改为使用 执行字节码缓存文件写入。 这意味着文件创建/写入的语义现在与 importlib 所做的相匹配,例如权限、写入和移动语义等等。 同时也添加了当 cfile 为符号链接或非常规文件时引发 的预警设置。
py_compile.main
(args=None)
在 3.2 版更改: 添加了对 的支持。
当此模块作为脚本运行时,会使用 main() 来编译命令行中指定的所有文件。 如果某个文件无法被编译则退出状态将为非零值。
参见
模块
编译一个目录树中所有 Python 源文件的工具。