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

1 投票
1 回答
1196 浏览
提问于 2025-04-18 09:42

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

我已经成功使用cx_Freeze在我的电脑上构建了一个可以运行的文件,但当我把它发给别人时,它出现了需要.dll文件的错误。我看了一些类似的问题,这让我在构建选项中加入了其他包。

我怀疑一旦我解决了这个特定的问题,我可能还需要在.exe中包含其他东西……任何帮助我避免这个问题的建议都非常感谢!最终用户只需要使用这个.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,但遇到了这个错误:

ARGH

(图片已上传,但不知为何,这篇帖子中的两张图片都没有显示)

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__'

1 个回答

0

我没有找到完全符合我需求的方法。不过,我发现我得到了一个我之前不知道的安装程序,它会把我exe目录里的所有东西都安装上。

文件路径是~\dist,里面只有一个.msi文件。运行这个文件就会把~\build\exe.win32-2.7目录里的所有东西都安装上。

撰写回答