准备用wxPython写点东西,想release到没有python的系统上,于是试试py2exe。
py2exe是一个将python脚本打包成可在windows下独立运行程序的工具。现在最新的版本是0.6.6,发布于2006.12.30,已经好久没更新了。适用的python版本是2.5。
首先下载安装,非常方便,不必多说。
然后看下里面的sample,写了一个setup试了下:
import py2exe
opts = {
" py2exe " :{
" compressed " : 1 ,
" optimize " : 2 ,
" bundle_files " : 1 ,
}
}
setup(
version = " 0.1.0 " ,
description = " py2exewxauitest " ,
name = " wxaui " ,
options = opts,
# zipfile=None,
windows = [ " aui.py " ],
)
运行这个脚本 python setup.py py2exe
将在dist目录下产生生成的发布文件
由于使用了options,所以没有在命令行加入参数,options中的参数compressed可以压缩zip,bundle_files可以将dll合并到lib zip中,基本上用这两个参数就能达到我的要求了,另外如果使用zipfile=None,可以将lib包合并到exe中。一个简单的wx程序最后大小是6M左右,当然还不包括一些dll,如gdiplus.dll。
因为我想用一个lib,但是有多个exe,经过试验,py2exe不能在一个setup脚本过程中智能的将公共用到的东西放入lib中,如果你运行了多个setup过程,最后一次的lib会覆盖之前的。但是如果你能保证最后一次setup的lib中的东西是最全的,那也就可以了。
version = "0.1.0",
description = "py2exe wx aui test",
name = "wxaui",
这几个参数作用是生成的exe查看属性时能看到,当然还有版权等参数。
在这个地方有一些使用技巧:
http://www.py2exe.org/index.cgi/GeneralTipsAndTricks