ejwe <[email protected]> 
回复: [email protected]
收件人: [email protected]
日期: 2005-11-24 下午2:29
主题: [python-chinese] 如何“编译”Python程序[转]

如何编译python程序(或者如何由python生成可执行文件)是一个非常常见的问题,总是有人问,列出来,google搜索的时候就可以看到了。如果还有人说"找不到相关资料",唯一的解释就是这个人太懒了,根本没有去找。

如果转载,请注明出处。

  1. python(及其它高级的脚本语言)不存在把指令编译到本地代码的工具,但是总是可以发布可执行文件。

我觉得py2exe等等工具还是罗嗦,需要在配置文件中写上需要的数据文件作者完全无视这样一个事实:我需要发布可执行文件的时候,程序已经完工了,所有的数据文件就在主程序所在目录下,所以多数情况下,根本不用到别的地方搜索。

  1. py2exe http://py2exe.sf.net

只支持windows平台,应该是大家听到最多的一个名字了,用户不少,所以有问题的话在它的mail list里面很容易找到答案。文档中提到了"无法找到某某code"、使用opengl等模块的问题

  1. Installer http://www.mcmillan-inc.com/installer_dnld.html

可以产生windows、linux平台的可执行文件,现在作者主页连不上去了,但是搜索一下可以在其它地方下载 自带一个小程序写配置文件,如果程序较复杂,还是需要手工修改这个配置文件

  1. Python自带的freeze(不过windows版本不带这个,你可以自己下载python的源程序再找)。这个是我最不推荐的一种方法(为什么?自己看),不过如果你的python程序要发布到其它工具不支持的平台上,可以考虑这个方法
  2. 新出来的Pyco http://www.pythonapocrypha.com/projects/pyco/

还没用过

  1. Squeeze http://starship.python.net/crew/fredrik/ipa/squeeze.htm

还没用过,只支持python 1.4

  1. cx_Freeze http://starship.python.net/crew/atuining/cx_Freeze/

winodws、linux平台。简单的程序甚至都不需要写配置文件

  1. Stand alone Python for Windows http://arctrix.com/nas/python/standalone.html

如果你不介意源程序太过"暴露"的话,用这个吧 会不会觉得Updated: Sun, 09 Apr 2000 18:39:54 -0600 扎眼?如果你看一看它的VC源代码,就不会这么想了——其实这是普遍适用于win系统的方法,无论是98、2000或者xp。也许也可以用到linux上——我不懂linux,如果真的可以这么做,还请告诉我。

  1. py2app http://undefined.org/python/

支持linux平台的工具可能也支持mac os,或者直接使用这个py2app。具体就不知道了,只吃过苹果,还没玩过苹果呢

  1. 另类的方法,对python语言都还不是100%支持,众多的CPython模块也不可以使用,还有,我也没有试过:
    1. for .NET的python编译器(如Visual Python),不过我可不喜欢为了一个芝麻大的软件安装.NET framework
    2. 用jython,然后用jbuilder、jsmooth、NativeJ之类的包裹一下,或者用gcj编译成本地代码 http://blender.blogchina.com/523381.html

反馈

  • 还有使用 .egg 的 setuptools 那 —— ZoomQuiet

  • 我用wxPython给py2exe做了个界面,有兴趣可以试试.py2exe_gui —— 0.706