从Python代码创建单个exe文件
可能重复的问题:
py2exe - 生成单个可执行文件
我有个朋友成功把他写的一个 Ruby 脚本打包成了一个单独的 exe 文件。当我尝试用 py2exe 把一个 Python 脚本也打包成 exe 文件时,却得到了好几个 pyd 文件和一个 dll 文件。
有没有办法把一个 Python 脚本和它所有的 DLL 和 pyd 文件打包成一个 exe 文件,省去其他的文件呢?
2 个回答
0
这个页面可能对你有帮助。具体来说,你可以通过把 bundle_files
设置为 1,和把 zipfile
设置为 None
来实现这个功能。我没有测试过,可能如果你有额外的 DLL 文件的话,这个方法就不太管用了。
页面上提到的另一种方法看起来有点麻烦:就是创建一个安装程序,这个安装程序会在运行之前把项目解压到一个临时文件夹里,等应用程序结束后再删除这个临时文件夹。
0
根据 py2exe.org 的说法:
使用 --bundle 或 -b 这个命令行选项,可以减少生成的文件数量,因为它会把二进制扩展、运行时的dll文件,甚至Python的dll文件都打包到可执行文件里,或者如果你愿意的话,也可以放在库的压缩包里。
...
选择1级打包时,会把 .pyd 和 .dll 文件都放进压缩包或者直接放到可执行文件里,同时也会处理 pythonXY.dll。这样做的好处是你只需要分发一个exe文件,不过这个文件会比较大。
这里还有一个小教程,讲的是如何创建一个单一的exe文件,它会在运行时把DLL文件解压到一个临时目录里,然后在Python退出时删除这个临时目录。