python - 将 EXE 及其依赖项转换为一个独立的 EXE

标签 python compilation exe cx-freeze

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

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

编辑:这是对 Python 3 的引用

最佳答案

您至少有两个选择:PyInstallerpy2exe

对于 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,
)

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

关于python - 将 EXE 及其依赖项转换为一个独立的 EXE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389724/

相关文章:

python - OOP 设计 - 在 Python 中,这是高质量的 OO 设计还是史诗般的失败?

ffmpeg - 将 ffmpeg 编译为独立的二进制文件

python - 为什么 pyinstaller 创建的 .exe 文件不起作用?

bundle - 将程序和外部文件 bundle 到一个可执行文件中?

python - 保护在 Python 上运行的 .exe 程序源代码的最佳方法?

python - Beautifulsoup 将字符串转换为 bs4.element 模块的 ResultSet 对象

python - 将 Pandas DataFrame 合并到新级别的列上

python - 在 python Tkinter 条目中输入和删除某些内容后保留占位符?

c++ - 尝试使用 dlopen 加载库时 undefined symbol

c - 这个 "c(.text+0x7): relocation truncated to fit: 8 .data"是什么类型的错误