3

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

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

编辑:这是参考 Python 3

4

3 回答 3

1

您至少有两个选择: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,
)

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

于 2012-11-21T20:26:11.150 回答
1

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

pyinstaller.py program.py --onefile

请参阅此处的文档:http: //www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw

于 2012-11-21T20:40:12.320 回答
0

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

于 2012-12-20T07:30:23.673 回答