Python下打包工具很多,使用比较多的是py2exe,我使用Python32,好像py2exe并不支持。看了看cxfreeze,可以支持python32.

首先编写一个setup.py:

 

import sys

from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
        name = "PyMailServer",
        version = "0.1",
        description = "PyMailServer",
        executables = [Executable("PyMailServer.py", base = base)])

 

然后在命令行中运行:

Python setup.py build

 

之后就会在build目录下生成windows下的可执行文件了。

注意的是,我使用的是ActivePython32,这个包中adoapi有点问题,需要修改(博客有记录),好像pywin32也有问题,如果程序中使用了相关的模块,在打包时会报告错误,我重新下载pywin32安装后可以正常编译了。

 

另:

如果编译好的程序执行时路径中含有中文,则程序会报告错误:cannot get zipimporter instance,只需要修改路径不含中文即可。不知道有什么解决办法。

 

这个bug好像已提交,等下个版本修复吧:

http://comments.gmane.org/gmane.comp.python.cx-freeze.user/678

 

posted on 2011-04-26 11:32  garfieldtom  阅读(1494)  评论(1编辑  收藏  举报