我一直在使用cx_Freeze有一段时间了,有一件事我真正想做的事:把所有文件合并成一个可执行文件,我可以分发。这不是真正的人性化送周围充满了30个文件夹,都在同一个目录下。我怎样才能做到这一点?谢谢。
这不是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这是一个更通用的解决方案,不仅蟒蛇。 http://upx.sourceforge.net/
它不是在cx_freeze支持。有关于它的邮件列表上的讨论。我记得,笔者指出,他人(PyInstaller,Py2Exe)使用一些诡异的技巧来实现这一目标。一些防病毒程序可以认为行为病毒也。
我用PyInstaller了一段时间,但是回去,因为Python 2.7版支持cx_freeze。我包使用Inno Setup一切,所以很容易散发。如果您使用的是Windows或不依赖。
您可以使用,而不是“构建” bdist_msi“。这将在目录中创建一个文件夹DIST用单个安装应用程序。
cx_Freeze不支持建立一个单一的EXE文件,所有的应用程序库的嵌入在一个可执行文件。
该文档提供了一些选项来获得一个单独的文件。
Windows下的另一种选择是使用bdist_msi
命令来为应用程序创建一个单个Microsoft Installer文件(.msi
),由@QuaziRabbi提及。此命令记录cx_Freeze
定制安装一些特定here选项。此命令超载本身带来一些更多的选择,自定义安装程序的bdist_msi
包的distutils
命令。可用选项有没有记录,一个需要看distutils
包的源代码。有趣的例子是Use cx-freeze to create an msi that adds a shortcut to the desktop和cx_freeze bdist_msi: create registry entries?
另一种选择是使用其他工具来创建一个更加个性化的单文件安装程序的cx_Freeze
构建步骤后冻结申请。基于脚本的工具NSIS (Nullsoft Scriptable Install System)允许人们创造一个非常定制的安装和使用的脚本意味着这一步可以完全自动化。 @ Fenisko的回答提到了另一种工具,还有更多。