使用py2exe
py2exe可以把python程序在windows下转换为exe,生成的exe可以让使用者不用再安装python就可以直接运行了,实际上py2exe除了exe外,还把需要的库,python解释器都统统放在exe所在的目录下了,但通常python解释器很小(2M左右),所以也是可以接受的,还有附带的一个好处是隐藏了源码。
有很多windows下的python程序使用了py2exe,比如wikidpad(一个桌面wiki程序,我曾经用了一段时间,使用wxPython,不错),bittorrent(这个就大名鼎鼎了)。
py2exe是在python的distutil基础上使用的,因此用起来很简单,这里有一个简单的教程: http://www.kadjo.net/softdev/?p=56
不过由于gtk有些庞大,作者使用了一些exclude语句,是为了把gtk运行库不放在最终的dist目录下,但实际上放也是可以的,只是需要更多一些的空间(gtk运行库加上python绑定还是蛮大的)。
update:
1. 生成的exe可能会有两个额外的文件,MSVCR71.dll和w9xpopen.exe,前者是python 2.4以后的py2exe都会要的,不过xp sp2以后都带有这个文件,所以也可以酌情考虑是否需要这个文件,后者w9xpopen.exe是为windows 9x准备的,除非你的程序要在9x下运行,否则可以不需要了。
2. py2exe生成的包,实际上不是一个单独的exe,python的库是作为dll形式放在独立文件中的,如果想将这些dll都统统压缩到一个exe,那么可以在写setup脚本时加上’bundle_files’: 1这个选项,比如:
import distutils import py2exe distutils.core.setup( console=["myprog.py"], zipfile=None, options={'py2exe':{ 'bundle_files': 1 } } )