标签:函数 compile foo 分享 bsp inf src 错误 nbsp
# 一.如何生成pyc/pyo文件
# 1.通过编写代码生成
import py_compile
# 参数如下
‘‘‘
def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1):
file:要编译的源文件
cfile:编译之后的pyc文件路径和文件名,默认直接在file后面加上c或者o(会保存在当前目录的__pycache__文件夹下),
pyo相当于优化之后的pyc
dfile:把在错误信息中显示的file用dfile替换
doraise:True或False,如果为True,那么文件编译出错的话,则会引发一个PyCompileError。
为False的话,编译出错会显示在sys.stderr中
optimize:用于编译的优化级别,有效的值为-1,0,1,2。-1表示当前解释器的优化级别
使用命令行的时候如果设置优化级别,通过-O来设置。用于生成pyo文件了。
说白了后面几个参数基本上用不到
‘‘‘
py_compile.compile("your_py_file")
# 2.通过命令行生成
# python (-O) -m py_compile your_py_file.py ,加上-O表示优化
‘‘‘
有的时候我们不想只编译一个py文件,而是编译一个文件夹下的所有py文件怎么办呢?
python还为我们提供了一个模块
‘‘‘
import compileall
# 参数如下
‘‘‘
def compile_dir(dir, maxlevels=10, ddir=None, force=False, rx=None,
quiet=0, legacy=False, optimize=-1, workers=1):
dir:文件夹路径
maxlevels:递归编译的的子目录的层数,默认是把10层子目录的py文件编译成pyc
ddir:和上面的dfile类似
force:如果为True,将强制编译为pyc,即便现在pyc文件是最新的,依旧会编译一次
rx:一个正则表达式,可以排除掉不想编译的目录,只编译想要的目录
quiet:给我安静点,编译之后不会在标准输出中,打印信息
‘‘‘
compileall.compile_dir("your_dir")
# 同样可以使用命令行
# python -m compileall your_dir






标签:函数 compile foo 分享 bsp inf src 错误 nbsp
原文地址:https://www.cnblogs.com/traditional/p/9738496.html