【问题标题】:Convert an EXE and its dependencies into one stand-alone EXE将一个 EXE 及其依赖项转换为一个独立的 EXE
【发布时间】:2012-11-15 00:22:30
【问题描述】:

我正在使用 cx_Freeze 将 Python 程序编译成可执行文件,它工作得很好,但问题是它不会将程序编译成一个 EXE,而是将它们转换成一个 .exe 文件和一大堆.dll 文件,包括程序运行所必需的 python32.dll。

有谁知道如何将所有这些文件打包成一个.exe 文件?我宁愿它是一个普通的 EXE 文件,而不仅仅是一个将 DLL 复制到临时目录以启动程序的文件。

编辑:这是对 Python 3 的参考

【问题讨论】:

  • cx_Freeze 还不支持。您可以制作安装程序,但不能制作独立的“只需运行此”exe

标签: python compilation exe cx-freeze


【解决方案1】:

您至少有两个选择:PyInstaller 或 py2exe。

使用 py2exe,有​​一个名为 bundle_files 的选项,您可以设置:

  • 3(默认):不捆绑。
  • 2:捆绑除 Python 解释器之外的所有内容。
  • 1:捆绑所有内容,包括 Python 解释器。

这是一个示例 setup.py:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    windows = [{'script': "single.py"}],
    zipfile = None,
)

这种方法不需要将文件提取到临时位置。

【讨论】:

  • 不幸的是,py2exe 仅适用于 python 2.x,而不适用于 python 3.x。但是,谢谢你的信息。我已经更新了问题以表明我需要 python 3 的答案。
【解决方案2】:

在将 python 脚本编译成一个文件时,Pyinstaller 通常是更简单的选择。

pyinstaller.py program.py --onefile

在此处查看文档:http://www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw

【讨论】:

  • 我检查了它,我不相信这也适用于 Python 3。不过信息很好。
【解决方案3】:

您尝试过 innosetup 吗?它可以从 cxfreeze 的输出创建安装程序文件。可能有一个选项可以将所有内容捆绑到一个文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多