使用 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 文件