python标准模块--py_compile

py_compile介绍

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

虽然并不经常需要,但是在安装用于共享使用的模块时,这个函数非常有用,特别是如果某些用户可能没有权限在包含源代码的目录中编写字节码缓存文件的话。

源代码不多,如下

>>> import py_compile
>>> dir(py_compile)
['PyCompileError', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'compile', 'importlib', 'main', 'os', 'sys', 'traceback']
View Code

1.py_compile.compile(file, cfile=None, dfile=None, doraise=False, optimize=-1)

将源文件编译为字节码并写出字节码缓存文件。源代码是从名为file的文件加载的。字节码被写入cfile, cfile默认为file + 'c'(如果在当前解释器中启用了优化,则为'o')。如果指定了dfile,它将在错误消息中用作源文件的名称,而不是文件。如果doraise是真的,那么在编译文件时遇到错误时将引发PyCompileError。

举例:

>>> py_compile.compile('ganiner.py')
'__pycache__\ganiner.cpython-36.pyc'
View Code

还可以使用cmd命令操作

python -m py_compile ****.py   #跟随完整路径
-m 相当于脚本中的import
View Code

2.py_compile.main(args=None)

编译几个源文件。在args中(如果没有指定args,则在命令行中)命名的文件将被编译,并以正常方式缓存生成的字节码。此函数不搜索目录结构以定位源文件;它只编译显式命名的文件。如果“-”是args中的唯一参数,那么文件列表将从标准输入中获取。

reference:https://docs.python.org/3.7/library/py_compile.html

每天进步一点,遇见更好的你!
原文地址:https://www.cnblogs.com/ganiner/p/9949313.html