题
我正在使用cx_freeze冻结我的Python程序。在运行CX_FREEZE时,创建了一堆PYD文件,将一堆PYC文件放入名为Library的档案中。ZIP和一些DLL文件。
有人可以告诉我PYC和PYD文件之间的区别吗? pyd文件不在库中的原因是什么?是否也可以将PYD文件也放入档案中?
谢谢。
解决方案
免责声明:一段时间我没有使用CX_FREEZE ......
.pyd文件是包含特定python需要功能的DLL机器代码文件。
.pyc文件是已编译为字节码的.py文件。
因此PYD是机器代码,PYC是字节码
现在,至于为什么PYD不在.zip中。...我想是因为Python解释器需要这些.pyds来运行该程序。 cx_freeze的作用基本上是这样:
- 编译所有.py文件,然后将.PYC文件扔进zip
- 将所有需要的.pyd文件放在zip中
- 创建一个固执的文件并将其放入输出目录中
- 复制python.exe并重命名为myProgram.exe
- 复制打开.zip并运行内容所需的所有.pyd文件
因此,您实际上并没有编译Python文件,而是重命名Interpeter并冻结所有源文件。
我希望这有帮助。
不隶属于 StackOverflow