繁体   English   中英

cx_Freeze python单个文件?

[英]cx_Freeze python single file?

我已经使用cx_Freeze已有一段时间了,我真正想做的一件事是:将所有文件放入一个我可以分发的可执行文件中。 在一个文件夹中发送包含30个文件的文件夹,这些文件夹都位于同一目录中,这并不是很友好。 我该怎么做? 谢谢。

cx_freeze不支持它。 在邮件列表上有关于它的讨论。 我记得,作者说其他人(PyInstaller,Py2Exe)使用一些肮脏的技巧来实现这一目标。 一些防病毒程序也可以将这种行为视为病毒。

我使用PyInstaller已有一段时间,但是由于对Python 2.7的支持而回到了cx_freeze。 我使用Inno Setup打包所有东西,因此很容易分发。 取决于您是否使用Windows。

这不是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/

您可以使用“ bdist_msi”而不是“ build”。 这将使用单个安装应用程序在目录中创建dist文件夹。

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

根据文档

cx_Freeze不支持构建单个文件exe,因为您的应用程序的所有库都嵌入在一个可执行文件中。

该文档提供了一些选项来获取单个文件。

Windows下的另一个选项是使用bdist_msi命令为您的应用程序创建单个Microsoft Installer文件( .msi ),如@QuaziRabbi所述。 此命令此处记录一些cx_Freeze特定于选项的选项用于自定义安装程序。 此命令使distutils软件包的bdist_msi命令超载,该软件包本身带来了一些用于自定义安装程序的选项。 可用选项未记录,需要查看distutils软件包的源代码。 有趣的示例是使用cx-freeze创建一个向桌面添加快捷方式的msi,以及cx_freeze bdist_msi:创建注册表项吗?

另一种选择是在cx_Freeze构建步骤之后,使用另一种工具为冻结的应用程序创建更具可定制性的单文件安装程序。 基于脚本的工具NSIS(Nullsoft可脚本安装系统)允许创建一个非常可定制的安装程序,脚本的使用意味着该步骤可以完全自动化。 @Fenisko的答案提到了另一个工具,还有更多工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM