py_compile是一个stdlib模块,可以生成给定Python源代码的字节码.很少需要它.
python 3.11?要编译Python 3源代码,必须使用随附的py_compile版本,如果从命令行使用它,则必须使用Python 2.7中的版本:
$python3 -mpy_compile your_script.py
要更改存储pyc文件的默认位置,可以使用py_compile.compile() function的cfile参数.
Does the byte code make the script run any faster?
它可能(以微不足道的数量). Python编译器没有做太多,所以速度很快.
以下是字节代码在人类可读形式中的样子:
>>> def f(o):
... with o:
... pass
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_FAST 0 (o)
3 SETUP_WITH 5 (to 11)
6 POP_TOP
3 7 POP_BLOCK
8 LOAD_CONST 0 (None)
>> 11 WITH_CLEANUP
12 END_FINALLY
13 LOAD_CONST 0 (None)
16 RETURN_VALUE
所有繁重的工作都留给python解释器,它在运行时解释字节码.
Or is this only for distribution?
文档提供了一个用例:一个带有Python模块的共享目录,只有窗帘用户可以编写.您可以禁用缓存字节代码到磁盘,以便可以使用存储在只读位置的py文件,而无需相应的pyc文件.
Why is it rarely used?
通常,pyc文件是通过构建/安装过程创建的.如果没有pyc文件,则可以在导入模块时即时创建它们:
$python -c 'import some_module'
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态