cx_Freeze Python单文件?

30 投票
4 回答
30477 浏览
提问于 2025-04-16 11:50

我已经使用cx_Freeze一段时间了,有一件事我一直想做:把所有文件打包成一个可执行文件,这样我就可以方便地分享给别人。把一个装满30个文件的文件夹发给别人并不是很友好。请问我该怎么做呢?谢谢!

4 个回答

3

你可以用 'bdist_msi' 来代替 'build'。这样做会在你的文件夹里创建一个 dist 文件夹,里面会有一个单独的安装程序

http://cx-freeze.readthedocs.io/en/latest/distutils.html

18

在cx_freeze中不支持这个功能。之前在邮件列表上有讨论过这件事。我记得作者提到,其他工具(比如PyInstaller和Py2Exe)为了实现这个功能,使用了一些不太干净的技巧。有些杀毒软件可能会把这种行为当成病毒。

我之前用过PyInstaller一段时间,但因为需要支持Python 2.7,所以又回到了cx_freeze。我使用Inno Setup来打包所有东西,这样分发起来很方便。这还要看你是否使用Windows系统。

8

这不是 bbfreeze 能做到的事情吗?

这里有个教程:http://www.blog.pythonlibrary.org/2010/08/19/a-bbfreeze-tutorial-build-a-binary-series/

其实用 Python 的 zipimport 自己做这个并不难,详细信息可以查看这个链接:http://docs.python.org/library/zipimport.html

你也可以选择使用像 UPX 这样的工具,它是一个更通用的解决方案,不仅仅适用于 Python。http://upx.sourceforge.net/

撰写回答