32.10. py_compile-编译 Python 源文件

源代码: Lib/py_compile.py


py_compile模块提供了从源文件生成字节码文件的Function,以及在将模块源文件作为脚本调用时使用的另一个Function。

尽管并不经常需要,但此Function在安装模块以供共享使用时很有用,尤其是在某些用户可能无权在包含源代码的目录中写入字节码缓存文件的情况下。

  • exception py_compile. PyCompileError

    • try编译文件时发生错误时引发异常。
  • py_compile. compile(* file * [,* cfile * [,* dfile * [,* doraise *]]])

    • 将源文件编译为字节码,然后写出字节码缓存文件。源代码是从名为* file 的文件加载的。字节码写入 cfile ,默认为 file * + 'c'(如果当前解释器中启用了优化,则为'o')。如果指定了* dfile ,它将用作错误消息中的源文件名,而不是 file 。如果 doraise 为 true,则在编译 file 时遇到错误时将引发PyCompileError。如果 doraise *为 false(默认值),则会将错误字符串写入sys.stderr,但不会引发异常。
  • py_compile. main([* args *])

    • 编译几个源文件。以* args (或命令行,如果未指定 args *)中命名的文件将被编译,并以正常方式缓存生成的字节码。此Function不会搜索目录结构来查找源文件;它仅编译显式命名的文件。如果'-'是 args 中的唯一参数,则文件列表取自标准 Importing。

在 2.7 版中进行了更改:添加了对'-'的支持。

当此模块作为脚本运行时,main()用于编译在命令行上命名的所有文件。如果其中一个文件无法编译,则退出状态为非零。

在 2.6 版中进行了更改:添加了模块作为脚本运行时的非零退出状态。

See also

  • Module compileall

  • 编译目录树中所有 Python 源文件的 Util。