在线文档教程

compileall

compileall - 字节编译Python库

源代码: Lib / compileall.py

该模块提供了一些实用功能来支持安装Python库。这些函数在目录树中编译Python源文件。此模块可用于在安装库时创建缓存的字节码文件,这使得即使对库目录没有写入权限的用户也可使用该模块。

1.命令行使用

该模块可以作为脚本(使用python -m compileall)来编译Python源代码。

directory ...file ...

位置参数是要编译的文件或包含源文件的目录,递归遍历。如果没有给出参数,就像命令行一样-l <directories from sys.path>。

-l

不要递归到子目录中,只编译直接包含在指定或隐含目录中的源代码文件。

-f

即使时间戳是最新的,也强制重建。

-q

不要打印已编译文件的列表,只打印错误消息。

-d destdir

预编译到正在编译的每个文件的路径的目录。这将出现在编译时间回溯,也被编译到字节码文件,它会在回溯和其他消息可以使用在情况下,源文件根本不执行字节码文件的时间存在。

-x regex

正则表达式用于搜索考虑编译的每个文件的完整路径,如果正则表达式产生匹配,则跳过文件。

-i list

读取文件list并将其包含的每一行添加到要编译的文件和目录列表中。如果list-,则从中读取行stdin

在版本2.7中更改:添加了该-i选项。

2.公共职能

compileall.compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])

递归地下降由dir命名的目录树,.py沿途编译所有文件。

所述maxlevels参数用于限制递归的深度; 它默认为10

如果给出了ddir,则它被编译为每个被编译以用于编译时间回溯的文件的路径,并且还被编译到字节码文件中,在该文件中将用于回溯和其他消息,文件在执行字节码文件时不存在。

如果force为真,即使时间戳是最新的,模块也会重新编译。

如果给出rx,则会在考虑编译的每个文件的完整路径上调用其搜索方法,如果它返回true值,则会跳过该文件。

如果quiet为真,则除非出现错误,否则不会在标准输出上打印任何内容。

compileall.compile_file(fullname[, ddir[, force[, rx[, quiet]]]])

用路径全名编译文件。

如果给出了ddir,则它将被编译为正在编译的文件的路径作为编译时间回溯的前缀,并且还会被编译到字节码文件中,在该文件中将用于回溯和其他消息,文件在执行字节码文件时不存在。

如果给出了rx,它的搜索方法会将完整路径名称传递给正在编译的文件,如果它返回一个真值,则该文件不会被编译并返回True

如果quiet 为真,则除非出现错误,否则不会在标准输出上打印任何内容。

2.7版本的新功能。

compileall.compile_path([skip_curdir[, maxlevels[, force]]])

字节编译所有.py找到的文件sys.path。如果skip_curdir为true(默认值),则当前目录不包含在搜索中。所有其他参数都传递给该compile_dir()函数。请注意,与其他编译函数不同,maxlevels默认为0

强制重新编译子目录及其所有子目录中的所有.py文件Lib/

import compileall compileall.compile_dir('Lib/', force=True) # Perform same compilation, excluding files in .svn directories. import re compileall.compile_dir('Lib/', rx=re.compile(r'[/\\][.]svn'), force=True)

扩展内容

Module py_compile 字节编译单个源文件。