py2exe在sourceforge 的下载只支持到2.7。
针对python3.0+的版本,需要自己编译。
1.下载源码
svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn
2.编译环境
这里使用的是vs2014.
3.安装
进入py2exe-3
1
|
python setup.py install
|
这里会进行编译、安装。
此外,python默认使用的是vs9,针对vs2014,需要改下文件:
寻找:
在下面增加:
如果出现错误:
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存在)
4.setup.py
setup.py可以参考官网,其中的参数--bundle-files,需要特别说下,想打成一个整包要设成0.
变化可以参考:http://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/py2exe-3/
最后附上setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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")] }],
)
|