cx_Freeze和PYC / PYD文件

时间:2010-05-20 15:55:18

标签: python cx-freeze

我正在使用cx_Freeze来冻结我的python程序。在运行cx_Freeze时,会创建一堆PYD文件,将大量PYC文件放入名为library.zip的存档中,并且还有一些DLL文件。

有人能告诉我PYC和PYD文件之间的区别吗? PYD文件不在library.zip中的原因是什么? 是否可以将PYD文件放入存档中?

感谢。

1 个答案:

答案 0 :(得分:6)

免责声明:我暂时没有使用过cx_Freeze ......

.PYD文件是包含特定python所需函数的DLL机器代码文件。

.PYC文件是已编译为字节码的.py文件。

所以PYD是机器码,PYC是字节码

现在为什么PYD不在.zip中....我想是因为python解释器需要那些.PYD来运行程序。 cx_Freeze的作用基本上是这样的:

  1. 编译所有.py文件并将zip文件中的.pyc文件抛出
  2. 将所有需要的.pyd文件放入zip
  3. 创建一个存根.py文件并将其放在输出目录
  4. 复制python.exe并重命名为myprogram.exe
  5. 复制打开.zip所需的所有.pyd文件并运行内容
  6. 所以你实际上并没有编译你的python文件,而是重命名interpeter并冻结所有源文件。

    我希望这会有所帮助。

相关问题