您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python3.2的pycompile

python3.2的pycompile

py_compile一个stdlib模块,可以在给定的Python源代码生成字节码。@H_403_1@很少需要它。

要编译Python 3源代码,必须使用它随附的py_compile版本,如果从命令行使用它,则不能使用Python 2.7的版本:

$ python3 -mpy_compile your_script.py

要更改pyc文件认存储位置,可以使用函数的cfileparameter 。py_compile.compile()

字节码会使脚本运行更快吗?

它可能(数量很少)。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解释器,该解释器在运行时解释字节码。

还是仅用于分发?

该文档提供了一个用例:一个包含python模块的共享目录,只有窗帘用户可以在其中编写。您可以禁用将字节码缓存到磁盘,以便可以使用存储在只读位置的py文件而没有相应的pyc文件

为什么很少使用?

通常,pyc文件是通过构建/安装过程创建的。如果没有pyc文件,则可以在导入模块时即时创建它们:

$ python -c 'import some_module'
python 2022/1/1 18:39:30 有281人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶