有哪个Python“编译器”可以静态链接python2x.dll依赖?
我了解到,py2exe只能动态链接一个python2x.dll文件。有没有什么Python的“编译器”可以把所有东西打包成一个独立的.exe文件,这样更方便携带呢?
如果有的话,或者没有的话,哪个编译器是最好的呢,真是让人好奇!
4 个回答
0
根据我的理解,可以把Python静态链接到一个可执行文件里,但这样一来,你就不能加载其他动态模块(.pyd文件),比如说os
、zlib
和math
了。除非你也能把这些模块静态编译到你的主程序里。
而且据我所知,唯一能做到这一点的编译器就是用来从源代码编译Python的C编译器。 :)
我不太确定这样做是否值得。其实直接使用p2exe,创建一个文件夹,把文件打包压缩后发出去就更简单了。
1
PyInstaller 说它可以制作一个简单易用的单个可执行文件。也许这正好符合你的需求。不过我自己从来没有用过它。
2
如果你查看py2exe的单文件可执行文件的维基页面底部,你会看到它可以创建一个文件的可执行程序。虽然它里面包含了DLL文件,但你不需要太在意这个。我觉得它是通过一种奇特的黑科技来实现的,这种黑科技可以拦截LoadLibrary的调用,让它们能够从.exe文件的其他地方读取内容,不过你也不需要关注这个。我们之前用过这个工具……它确实有效。