cx_Freeze python 单个文件?

发布于 2024-10-17 04:46:48 字数 115 浏览 4 评论 0原文

我已经使用 cx_Freeze 一段时间了,我真正想做的一件事是:将所有文件放入我可以分发的一个可执行文件中。发送一个包含 30 个文件且全部位于同一目录中的文件夹并不是真正的用户友好。我怎样才能做到这一点? 谢谢。

I've been using cx_Freeze for a while now and there is one thing I've really wanted to do: put ALL files into ONE executable that I can distribute. It's not really user-friendly to send around a folder filled with 30 files, all in the same directory. How can I accomplish this?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

眼眸印温柔 2024-10-24 04:46:48

cx_freeze 不支持它。邮件列表上对此进行了讨论。我记得,作者指出其他人(PyInstaller、Py2Exe)使用一些肮脏的黑客来实现这一目标。一些防病毒程序也可以将该行为视为病毒。

我使用 PyInstaller 一段时间,但由于 Python 2.7 支持,又回到了 cx_freeze。我使用 Inno Setup 打包所有内容,因此很容易分发。取决于你是否使用Windows。

It is not supported in cx_freeze. There was discussion about it on mailing list. As I recall, the author stated that others (PyInstaller, Py2Exe) use some dirty hacks to achieve that. Some anti-virus programs can consider that behavior as a virus also.

I used PyInstaller for some time, but went back to cx_freeze because of Python 2.7 support. I pack everything using Inno Setup, so it is easy to distribute. Depends if you use Windows or not.

早乙女 2024-10-24 04:46:48

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

Isn't this what bbfreeze does?

Tutorial here: http://www.blog.pythonlibrary.org/2010/08/19/a-bbfreeze-tutorial-build-a-binary-series/

It's actually not that hard to roll your own with Python zipimport http://docs.python.org/library/zipimport.html

You may prefer to use something like UPX which is a more general solution, not Python only. http://upx.sourceforge.net/

近箐 2024-10-24 04:46:48

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

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

You can use 'bdist_msi' instead of 'build'. This will create a dist folder in the directory with a single setup application.

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

小嗲 2024-10-24 04:46:48

根据文档

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

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

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

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

According to the documentation

cx_Freeze does not support building a single file exe, where all of the libraries for your application are embedded in one executable file.

The documentation gives some options to obtain a single file.

A further option under Windows is to use the bdist_msi command to create a single Microsoft Installer file (.msi) for your application, as mentioned by @QuaziRabbi. This command has few cx_Freeze-specific options documented here to customize the installer. This command overloads the bdist_msi command of the distutils package which itself brings some more options to customize the installer. The available options are not documented, one need to look at the source code of the distutils package. Interesting examples are Use cx-freeze to create an msi that adds a shortcut to the desktop and cx_freeze bdist_msi: create registry entries?

Another option is to use another tool to create a more customizable single-file installer for the frozen application after the cx_Freeze build step. The script-based tool NSIS (Nullsoft Scriptable Install System) allows one to create a very customizable installer and the use of a script means that this step can be completely automatized. @Fenisko's answers mentions another tool, and there are many more.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文