繁体   English   中英

python 文件扩展名 .pyc.pyd.pyo 代表什么?

[英]What do the python file extensions, .pyc .pyd .pyo stand for?

这些 python 文件扩展名是什么意思?

  • .pyc
  • .pyd
  • .pyo

它们之间有什么区别以及它们是如何从 *.py 文件生成的?

  1. .py :这通常是您编写的输入源代码。
  2. .pyc :这是编译后的字节码。 如果你导入一个模块,python 将构建一个包含字节码的*.pyc文件,以便以后再次导入它更容易(更快)。
  3. .pyo :这是在 Python 3.5 之前用于*.pyc文件的文件格式,这些文件是使用优化 ( -O ) 标志创建的。 (见下面的注释)
  4. .pyd :这基本上是一个 windows dll 文件。 http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

另外关于.pyc.pyo的进一步讨论,请查看:http: //www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (我复制了下面的重要部分)

  • 当使用 -O 标志调用 Python 解释器时,会生成优化代码并将其存储在“.pyo”文件中。 优化器目前没有多大帮助; 它只删除断言语句。 使用 -O 时,所有字节码都被优化; .pyc 文件被忽略,.py 文件被编译为优化的字节码。
  • 将两个 -O 标志传递给 Python 解释器 (-OO) 将导致字节码编译器执行优化,在极少数情况下可能会导致程序出现故障。 目前只从字节码中删除__doc__字符串,从而生成更紧凑的“.pyo”文件。 由于某些程序可能依赖这些可用的程序,因此只有在您知道自己在做什么的情况下才应该使用此选项。
  • 从 '.pyc' 或 '.pyo' 文件读取程序不会比从 '.py' 文件读取程序运行得更快; '.pyc' 或 '.pyo' 文件唯一更快的是它们的加载速度。
  • 当通过在命令行上给出其名称来运行脚本时,脚本的字节码永远不会写入“.pyc”或“.pyo”文件。 因此,可以通过将脚本的大部分代码移至模块并使用导入该模块的小型引导脚本来减少脚本的启动时间。 也可以直接在命令行上命名“.pyc”或“.pyo”文件。

笔记:

在 2015 年 9 月 15 日, Python 3.5 版本实现了 PEP-488 并消除了.pyo文件。 这意味着.pyc文件代表未优化和优化的字节码。

  • .py - 常规脚本
  • .py3 -(很少使用)Python3 脚本。 Python3 脚本通常以“.py”而不是“.py3”结尾,但我见过几次
  • .pyc - 编译脚本(字节码)
  • .pyo - 优化的 pyc 文件(从 Python3.5 开始,Python 将只使用 pyc 而不是 pyo 和 pyc)
  • .pyw - 在窗口模式下运行的 Python 脚本,无需控制台; 用 pythonw.exe 执行
  • .pyx - 要转换为 C/C++ 的 Cython src
  • .pyd - 作为 Windows DLL 制作的 Python 脚本
  • .pxd - 相当于 C/C++ 标头的 Cython 脚本
  • .pxi - MyPy 存根
  • .pyi - 存根文件 ( PEP 484 )
  • .pyz - Python 脚本存档( PEP 441 ); 这是在标准 Python 脚本头之后包含二进制形式的压缩 Python 脚本 (ZIP) 的脚本
  • .pywz - MS-Windows 的 Python 脚本存档( PEP 441 ); 这是在标准 Python 脚本头之后包含二进制形式的压缩 Python 脚本 (ZIP) 的脚本
  • .py[cod] - “.gitignore”中的通配符表示文件可能是“.pyc”、“.pyo”或“.pyd”。
  • .pth - 路径配置文件; 它的内容是要添加到sys.path的附加项目(每行一个)。 请参阅site模块。

可以在http://dcjtech.info/topic/python-file-extensions/找到更大的附加 Python 文件扩展名列表(大多数是罕见的和非官方的)

.py:你写的输入源代码。 .pyc:编译后的字节码。 如果您导入一个模块,python 将构建一个包含字节码的 .pyc 文件,以便稍后再次导入它更容易(更快)。 .pyo:打开优化 (-O) 时创建的.pyc 文件。 .pyd:python 的 windows dll 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM