我正在使用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的作用基本上是这样:

  1. 编译所有.py文件,然后将.PYC文件扔进zip
  2. 将所有需要的.pyd文件放在zip中
  3. 创建一个固执的文件并将其放入输出目录中
  4. 复制python.exe并重命名为myProgram.exe
  5. 复制打开.zip并运行内容所需的所有.pyd文件

因此,您实际上并没有编译Python文件,而是重命名Interpeter并冻结所有源文件。

我希望这有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top