cx_Freeze 和 PYC/PYD 文件
我正在使用 cx_Freeze 冻结我的 python 程序。运行 cx_Freeze 时,会创建一堆 PYD 文件,一大堆 PYC 文件被放入名为library.zip 的存档中,还有一些 DLL 文件也在那里。
有人能告诉我 PYC 和 PYD 文件之间的区别吗? PYD 文件不在library.zip 中的原因是什么? 是否也可以将 PYD 文件放入存档中?
谢谢。
I'm using cx_Freeze to freeze my python program. On running cx_Freeze, a bunch of PYD files are created, a whole bunch of PYC files are put into a archive named library.zip and a few DLL files are there too.
Could someone tell me the difference between the PYC and the PYD files?
What's the reason for the PYD files not in the library.zip?
Is it possible to put the PYD files into the archive as well?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
免责声明:我有一段时间没有使用 cx_Freeze.......
PYD 文件是 DLL 机器代码文件,其中包含特定的 python 所需函数。
.PYC 文件是已编译为字节码的 .py 文件。
所以 PYD 是机器代码,PYC 是字节码
现在至于为什么 PYD 不在 .zip 中......我想这是因为 python 解释器需要这些 .PYD 来运行程序。 cx_Freeze 的作用基本上是这样的:
,因此您实际上并没有编译 python 文件,而是重命名解释器并冻结所有源文件。
我希望这有帮助。
Disclaimer: I haven't used cx_Freeze in awhile......
.PYD files are DLL machine-code files that contain specific python-required functions.
.PYC files are .py files that have been compiled into bytecode.
so PYDs are machine code and PYCs are bytecode
Now as for why the PYDs aren't in the .zip....I'd imagine it's because those .PYDs are needed by the python interpreter to run the program. What cx_Freeze does is basically this:
So you're not actually compiling your python file, you're instead renaming the interpeter and freezing all the source files.
I hope this helps.