使用 cx_Freeze - 如何在 .exe 中包含所有必要的文件?

Posted

技术标签:

【中文标题】使用 cx_Freeze - 如何在 .exe 中包含所有必要的文件?【英文标题】:Working with cx_Freeze - how to include all necessary files in .exe? 【发布时间】:2014-06-13 17:00:42 【问题描述】:

我想制作一个独立的 .exe 文件。

我已经设法使用 cx_Freeze 构建了一个可以在我的机器上运行的程序,但是当我将它发送给某人时,它会抛出一个关于需要 .dll 的错误。我阅读了一些类似的问题,这就是我最终如何在构建选项中包含包的方式。

我怀疑一旦我解决了这个特殊问题,我最终需要在 .exe 中包含其他内容....任何帮助绕过这个陷阱的帮助!最终用户需要能够只使用 .exe 而不必安装其他文件。

这是我当前的 setup.py:

import sys
from cx_Freeze import setup, Executable

base = None

if sys.platform == 'win32':
    base = 'Win32GUI'

build_options = "includes" : [ "re", "atexit"], "packages": ["PyQt4.QtCore", "PyQt4.QtGui"]

setup(  name = "Hex Script Combination",
        version = "0.1",
        description = "Contact (info) with questions",
        options = "build_exe" : build_options,
        executables = [Executable("Project.py", base=base)])

预计到达时间: 我试过 IExpress,我遇到了这个错误:

(图片已上传,但由于某种原因,该帖子中的图片均未显示)

File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in <module>
    code = importer.get_code(moduleName)
ZipImportError: can't find module 'projec~1__main__'

【问题讨论】:

cx_Freeze 没有办法制作单个文件的 exe,但您可以使用 IExpress 制作一个自解压存档,在解压后运行您的 exe。 谢谢,我会调查的! 【参考方案1】:

我没有找到完全按照我的意愿行事的方法。但是,我确实发现我得到了一个我不知道的安装程序,它确实安装了我的 exe 目录中的所有内容。

文件路径是 ~\dist,它只包含一个 .msi 文件。启动它会安装 ~\build\exe.win32-2.7 中的所有内容

【讨论】:

您可能在某个时候运行了 python setup.py bdist_msi - 这就是 .msi 安装程序的原因。

以上是关于使用 cx_Freeze - 如何在 .exe 中包含所有必要的文件?的主要内容,如果未能解决你的问题,请参考以下文章

运行使用 cx_freeze 编译的 exe 时如何查看错误消息?

如何使用 cx_freeze 在 python 中创建 .EXE 文件

如何在 Windows 10 上使用 Cx_Freeze 制作 exe,包括 PyQt5 和 OpenCV

使用 cx_Freeze 将第一个程序制作成 exe 文件

cx_freeze 的 exe 错误

如何在 OSX 上使用 cx_Freeze 隐藏控制台