py2exe在sourceforge 的下载只支持到2.7。python
针对python3.0+的版本,须要本身编译。windows
svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svnapp
这里使用的是vs2014.svn
进入py2exe-3ui
python setup.py installspa
这里会进行编译、安装。.net
此外,python默认使用的是vs9,针对vs2014,须要改下文件:code
Lib\distutils\msvc9compiler.pyip
寻找:ci
VERSION = get_build_version()
在下面增长:
VERSION = 11.0
若是出现错误:
Failed to load and parse the manifest. The system cannot find the file specified.
error: command 'mt.exe' failed with exit status 31
解决办法:因为vs2010后的link.exe的参数稍微有些改变,因此在link的时候没有生成manifest文件,天然mt.exe找不到这个文件。只须要在msvc9compiler.py里面搜索一下MANIFESTFILE,而后在他上面加一行ld_args.append('/MANIFEST'),保存就OK了。(python3.4好像没有这个问题,2.7存在)
setup.py能够参考官网,其中的参数--bundle-files,须要特别说下,想打成一个整包要设成0.
变化能够参考:http://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/py2exe-3/
最后附上setup.py
from distutils.core import setup import py2exe import sys,os if sys.version_info.major >= 3.0: opt_bundle_files = 0 else: opt_bundle_files = 1 includes = ["PyQt4.QtCore","PyQt4.QtGui","sip"] options = {"py2exe": { "compressed": 1, "optimize": 2, "includes": includes, "bundle_files": opt_bundle_files, } } setup( version = "0.1.0", description = "test_add", options = options, zipfile=None, console=[{"script": "test_add.py", "icon_resources": [(1, "py.ico")] }], #windows=[{"script": "test_add.py", "icon_resources": [(1, "py.ico")] }], )