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

即可得到需要的样式。

下图是转化之前的效果

这个是转化之后的效果。

 


 

 posted on 2012-09-21 13:39  Quisis  阅读(2189)  评论(1编辑  收藏  举报