Python cx_冻结和PYC/PYD文件

Python cx_冻结和PYC/PYD文件,python,cx-freeze,Python,Cx Freeze,我正在使用cx\u Freeze来冻结我的python程序。在运行cx_Freeze时,会创建一组PYD文件,将一整组PYC文件放入名为library.zip的归档文件中,还有一些DLL文件 有人能告诉我PYC和PYD文件之间的区别吗? PYD文件不在library.zip中的原因是什么? 是否也可以将PYD文件放入存档 谢谢。免责声明:我有一段时间没有使用cx\U冻结 .PYD文件是包含特定python必需函数的DLL机器代码文件 .PYC文件是编译成字节码的.py文件 所以PYD是机器码,P

我正在使用cx\u Freeze来冻结我的python程序。在运行cx_Freeze时,会创建一组PYD文件,将一整组PYC文件放入名为library.zip的归档文件中,还有一些DLL文件

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


谢谢。

免责声明:我有一段时间没有使用cx\U冻结

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

.PYC文件是编译成字节码的.py文件

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

至于为什么pyd不在.zip中……我想这是因为python解释器需要这些.pyd来运行程序。cx_Freeze的基本功能是:

  • 编译所有.py文件并将.pyc文件放入zip文件中
  • 将所有需要的.pyd文件放入zip
  • 创建一个stub.py文件并将其放在输出目录中
  • 复制python.exe并重命名为myprogram.exe
  • 复制打开.zip并运行内容所需的所有.pyd文件
  • 因此,您实际上不是在编译python文件,而是重命名interpeter并冻结所有源文件


    我希望这能有所帮助。

    谢谢蒂姆。。我一直在想,我一直在把它“编译”成exe派比,你可以调查派比。Pypy实际上可以将python代码编译成C,但它并不容易安装/使用/理解。