py2exe 能够把 Python script 转换成可以在windows上独立执行的(即不需安装Python)的exe程序(加上其它必需的运行时函数库)。
使用方式:
假设有一Python script 名为"hello.py", 通过一个setup.py script 来产生可执行文件
from distutils.core import setup
import py2exe
setup(console=["hello.py" )
将 setup(console=["..." ) 中的文件名替换为要产生 exe 的 script 文件名.然后在 command line 下执行此 script:
setup.py py2exe
之后会在当前目录中产生一个 dist 目录。此目录即包含该可执行文件及其它必须的文件,必须一起发布。
上述 setup.py 中指定产生一个 console 程序; 若要产生一个有 console 窗口的程序,将 "console" 改成 "windows":
setup(windows=["hello.py" )
若要生成多个可执行文件,只要将多个 script 文件名以 list 方式传给 setup() 即可:
setup(console=["hello.py", "hello1.py", "hello2.py" )
也可以同时产生 console 和 windows 程序:
setup(console=["hello.py", "hello1.py" , windows=["hello2.py" )
应用程序有时需要使用到一些外部文件,例如字体或是图片等, 通过setup() 的 data_files参数,可以将这些额外的文件加入发布目录中。将一个或多个 (目的目录, [源文件1,源文件2...源文件n ) 形成的 tuple,包装成 list 指派给 data_files参数即可:
setup(console=["hello.py", "hello1.py" , windows=["hello2.py" ,
data_files=[("img",
[r"d:documentsmatrix.jpg",
r"d:documentsBatman.jpg" ),
("xml",
[r"D: mpmypaint.xml",
r"D: mpmypuzzle.xml",
r"D: mpmypuzzle1.xml" ) )
产生之后的 dist 目录中,应该会有一 img 目录,内含 matrix.jpg 和 batman.jpg 两个文件,以及 xml 目录,内含三个 xml 文件。
另外 py2exe 还提供了生成 windows service 和 COM server 的功能。另外 Python 的 GUI toolkit - Tkinter 也可使用,只是会多出 2MB 多的 Tkinter runtime....