一、安装Py2exe
下载 py2exe-0.6.9.win32-py2.7.exe 进行安装,下载链接:http://prdownloads.sourceforge.net/py2exe
二、Py2exe的用法
编写一个python脚本来实现应用程序的发布
如setup.py简单示例如下:
from distutils.core import setup
import py2exe
setup(
console=["helloworld.py"],
options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } }
)
如setup.py复杂的示例如下:
#!/usr/bin/python
#-*-coding:utf-8-*-
from distutils.core import setup
import py2exe
includes=["xlsxwriter"]
setup(
version = "1.0", #版本号
description = u"模拟终端在线工具", #描述
name = "ClientOnline", #程序名
zipfile=None, #不生成library.zip文件
windows=['ClientOnline.py'], #需要打包成windows的脚本
options={
"py2exe":
{
"compressed":1, #创建压缩的zip文件,压缩比为3:1
"optimize":0, #优化等级,0表示不优化(generate.pyc),1表示普通优化(like python -O),2表示额外优化(like python -OO)
"unbuffered":True, #使用未缓冲的二进制stdout和stderr
"bundle_files":1, #所有文件打包成一个exe文件,可选项1、2、3
"dist_dir":"./ClientOnline", #设置生成可执行文件的路径,默认当前文件下的ClientOnline文件夹
"includes":includes, #要引入的模块名称列表
"dll_excludes":["w9xpopen.dll","MSVCP90.dll","OLEAUT32.dll","USER32.dll","SHELL32.dll","ole32.dll"
"COMDLG32.dll","WSOCK32.dll","COMCTL32.dll","ADVAPI32.dll","WS2_32.dll",
"WINSPOOL.DRV","GDI32.dll","WINMM.dll","KERNEL32.dll","RPCRT4.dll"] #要排除的dll列表的dll文件
}
}
)
在该情况下Console中输入python setup.py py2exe后进行执行,提示找不到xlswriter模块。三、py2exe打包时添加应用程序图标
#windows=['pyTools.py'], #需要打包成windows的脚本,无图标
windows=[{"script":"pyTools.py","icon_resources":[(1,u"img/icon/pyTools.ico")]}], #添加图标需要打包成windows的脚本
可能问题:
1.图标ico不能显示
原因:a.python能识别的ico图片需要为256色,b.win7以上系统支持的图标显示需要图标分辨率由大到小排序,把256x256就是最下面的图片拖到最上面,然后依次由大到小排序后点击保存即可
建议下载图片处理软件Greenfish Icon Editor Pro,参考以下链接操作即可
http://blog.csdn.net/bedbrother/article/details/78182205?locationNum=5&fps=1
2.第一次打包时ico图标生效了,然而后续调整ico图标后,图标没有更新
原因:py2exe中的一行打包指令:"dist_dir":"./pyTools_v1.0",限定了生成的文件夹名称,又由于项目下文件夹内图片缓存问题,导致图片仍然是先前的ico图片,可以改变文件夹名称或者去掉改行,让打包时文件夹重新生成