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

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

  • .pyc文件
  • .pyd
  • .pyo

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

  1. .py :这通常是您编写的input源代码。
  2. .pyc :这是编译的字节码。 如果你导入一个模块,python将会build立一个包含字节码的*.pyc文件,以便于以后再次导入(比较快)。
  3. .pyo :这是优化( -O )时创build的*.pyc文件。
  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文件被编译为优化的字节码。
  • 向Python解释器(-OO)传递两个-O标志将导致字节码编译器执行优化,在极less数情况下可能会导致程序出现故障。 目前只有__doc__string被从字节码中移除,导致更紧凑的'.pyo'文件。 由于某些程序可能依赖于这些程序,所以只有在知道自己在做什么的情况下,才应该使用这个选项。
  • 从“.pyc”或“.pyo”文件读取的程序运行速度比从“.py”文件读取时运行速度快; 关于“.pyc”或“.pyo”文件的唯一更快的速度是它们被加载的速度。
  • 当通过在命令行中input脚本名称来运行脚本时,脚本的字节码永远不会写入“.pyc”或“.pyo”文件。 因此,脚本的启动时间可以通过将其大部分代码移动到一个模块并具有一个导入该模块的小引导脚本来降低。 也可以直接在命令行上命名“.pyc”或“.pyo”文件。

.py – 常规脚本
.py3 – (很less使用)Python3脚本。 Python3脚本通常以“.py”而不是“.py3”结尾,但是我已经看到了几次
.pyc – 编译的脚本(字节码)
.pyo – 优化的pyc文件(从Python3.5开始,Python将只使用pyc而不是pyo和pyc)
.pyw – 用于Windows的Python脚本。 它是用pythonw.exe执行的
.pyx – 将Cython src转换为C / C ++
.pyd – 作为Windows DLL 创build的 Python脚本
.pxd – 相当于C / C ++头文件的Cython脚本
.pxi – MyPy存根
.pyi – 存根文件( PEP 484 )
.pyz – Python脚本归档( PEP 441 ); 这是一个包含标准Python脚本头之后的二进制forms的压缩Python脚本(ZIP)的脚本
.pywz – 用于MS-Windows的Python脚本归档( PEP 441 ); 这是一个包含标准Python脚本头之后的二进制forms的压缩Python脚本(ZIP)的脚本
.py [cod] – “.gitignore”中的通配符表示该文件可能是“.pyc”,“.pyo”或“.pyd”。

http://dcjtech.info/topic/python-file-extensions/可以find更多的额外的Python文件扩展名列表(大部分是罕见的和非官方的);