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

时间:2012-01-11 15:54:56

标签: python pyc

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

  • pyc文件
  • .pyd
  • .pyo

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

2 个答案:

答案 0 :(得分:429)

  1. .py:这通常是您编写的输入源代码。
  2. .pyc:这是编译后的字节码。如果你导入一个模块,python将构建一个包含字节码的*.pyc文件,以便以后更容易(更快)地再次导入它。
  3. .pyo:这是在优化(*.pyc)开启时创建的-O文件。
  4. .pyd:这基本上是一个Windows dll文件。 http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll
  5. 另外,有关.pyc vs .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'文件。
    •   

答案 1 :(得分:207)

  • .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 stub
  • .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”。

http://dcjtech.info/topic/python-file-extensions/

可以找到更多的其他Python文件扩展名列表(大多数是罕见的和非官方的)