python丰富的第三方库可以很轻松实现复杂的功能,但脚本文件不利用在其它电脑上共享,对端需要安装python及依赖类库,不方便使用。所幸有很三方软件py2exe,可以将python打包成exe程序,直接点击就可运行。

 

一. 安装py2exe 

http://www.py2exe.org/  下载py2exe,运行python setup.py 安装。

python 命令行下,运行import py2exe不报错,则安装成功。

当前py2exe只支持2.x的python,不支持3.x的python。

 

二. 控制台程序

在test.py 当前目录下创建setup.py,内容如下:



from distutils.core import setup import py2exe setup(console=['test.py'])



 

运行:python setup.py py2exe, 会在当前目前下生成dist文件夹,dist有test.exe产生。

 

python打包成exe_py2exe

 

运行结果:

python打包成exe_当前目录_02

 

 

查看dist内容,python依赖的类库_hashlib.pyd,bz2.pyd都被拷贝至当前目录。py2exe实际上通过调用python27.dll接口启动python解释器,来执行相应脚本。

注:目录中的*.pyd,*.zip等文件都不能删除,除了w9xpopen.exe外,否则程序启动失败。

 

二. GUI

下面看一个GUI实例,我们用wxPython实现了GUI加解密小工具。


from distutils.core import setupimport py2exe setup(windows=['encodepad.py'])


 

运行python setup.py py2exe,报错:No such file or directory: 'MSVCP90.dll'

本人安装的VS2012,的确不存在msvc90.dll,可通过下列方式觖决。

 

setup(windows=['encodepad.py'],options = { "py2exe":{"dll_excludes":["MSVCP90.dll"]}})

 

编译成功后,在dist下生成encodepad.exe,运行效果如下:

python打包成exe_python_03