py2exe
py2exe是一个制作Python发行版的小工具,它能够将.py程序编译成windows下脱离解释器的可执行程序。py2exe现在的最新版是0.69版,可以去http://www.py2exe.org/下载。安装过程也十分简便。
配置和使用方法
在需要编译的程序所在目录下建立一个新的.py文件,假设要编译的文件是main.py,配置文件是compile.py:
1 # compile.py 2 from distutils.core import setup 3 import py2exe 4 5 options = {"py2exe": 6 {"compressed": 1, 7 "optimize": 2, 8 "bundle_files": 1, 9 "dll_excludes": ["w9xpopen.exe"]} 10 } 11 setup( 12 windows=[{"script":"HuffmanCompress.py", 13 "icon_resources":[(1, "compresslogo.ico")]}], 14 options = options, 15 zipfile=None, 16 data_files=[("images", 17 ["images\compress.png", "images\info.png", 18 "images\logo.png","images\logout.png", 19 "images\pythonPower.png", 20 "images\uncompress.png"])] 21 )
在cmd下进入当前目录,执行
python compile.py py2exe
如果找不到msvcp90.dll就去网上下载一个放在C:\Windows\System32下。如果没有错误在dist,目录下就会有我们想要的exe文件。我的目录下原来有个w9xpopen.exe,这个是windows 9x下的管道程序。在options中加入:
"dll_excludes": ["w9xpopen.exe"]}
便可以将这个程序打包入.exe中。
程序图标(icon)不显示的问题
为了是程序美观,尝试加入图标文件代替难看的.exe图标。于是便制作了一个256×256的icon文件,利用下面的配置加入:
"icon_resources":[(1, "compresslogo.ico")]
但是结果并没有如预想中的那样,依旧是丑陋的原图标。后来在stackoverflow上找到了方案,在vista和win7中图标是由多个大小不同的ico文件组成了,所以需要利用png2ico将多个png图片转化为一个ico文件。其中png2ico小工具可以去这里下载。将原来的的png文件做成16×16,32×32,48×48,248×248四个大小,然后用如下命令完成转化,假设原来的png文件为source248×248.png等四个文件,注意四个文件必须从大到小排列,否则做出的ico图标仍然无法显示
png2ico myicon.ico source248×248.png source48×48.png source32×32.png source16×16.png
然后重新执行一遍
python compile.py py2exe
即可得到需要的样式。
下图是转化之前的效果
这个是转化之后的效果。