cx_Freeze和PYC/PYD文件

Mri*_*lla 3 python cx-freeze

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

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

谢谢.

Tim*_*dge 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文件并运行内容

所以你实际上并没有编译你的python文件,而是重命名interpeter并冻结所有源文件.

我希望这有帮助.