2012-11-15 44 views
2

我使用cx_Freeze将Python程序编译为可执行文件,它工作得很好,但问题在于它不会将程序编译到一个EXE中,它会转换他们到一个.exe文件和一大堆.dll文件,包括python32.dll这是程序运行所必需的。将EXE及其依赖关系转换为一个独立的EXE

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

编辑:这是引用到Python 3

+2

cx_Freeze还不支持。你可以做一个安装程序,但不是一个独立的'只运行这个'exe –

回答

1

您至少有两种选择:PyInstallerpy2exe

随着py2exe,有​​一个名为bundle_files一个选项,您可以设置:

  • (默认):不捆绑。
  • :捆绑一切,但Python解释器。
  • :捆绑一切,包括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, 
) 

这种方法不需要解压文件到一个临时位置。

+0

不幸的是,py2exe只适用于python 2.x,而不是python 3.x.但是,感谢信息。我已经更新了这个问题,以显示我需要Python 3的答案。 –

0

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