【问题标题】:Working with cx_Freeze - how to include all necessary files in .exe?使用 cx_Freeze - 如何在 .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。
  • 谢谢,我会调查的!

标签: python python-2.7 cx-freeze


【解决方案1】:

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

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

【讨论】:

  • 您可能在某个时候运行了 python setup.py bdist_msi - 这就是 .msi 安装程序的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
相关资源
最近更新 更多