LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1408|回复: 7

Python 脚本怎样可以编译成二进制程序?

[复制链接]
发表于 2005-12-27 16:51:36 | 显示全部楼层 |阅读模式
刚初学 Python,问问大家,谢谢了。
发表于 2005-12-27 18:45:09 | 显示全部楼层
能说说为什么要编译他(成二进制)吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-28 12:42:55 | 显示全部楼层
在 Linux 当然没有问题,我是想如果在 Windows 给用户运行的话是不是也让他们安装一个 Python 的环境,这样感觉有点…… :ask
回复 支持 反对

使用道具 举报

发表于 2005-12-28 12:51:32 | 显示全部楼层
1. 感觉这样,就好像我们刚学java的时候,很多人不喜欢用java虚拟机,老要搞成什么exe文件一样. 何必呢? class 文件多好...
2. 就算编译成二进制,win 和 *nix 下也不通用
回复 支持 反对

使用道具 举报

发表于 2005-12-28 14:07:03 | 显示全部楼层
做一个windows下的安装程序呢?检查python有没装,没有就装上..把python环境一并提供在安装程序里 - -! 在作好py文件的打开关联,在桌面和开始菜单上建立主程序的快捷方式. (就象很多win程序那样-_-,不要在乎安装程序有多大,只要傻瓜就好) win下有很多安装程序制作的工具,很方便的说..(有授权问题?..不管了)
这样打包的程序只有一个安装的exe文件,用户安装了桌面上就有快捷方式,够傻瓜了.. :rolleyes:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-28 17:26:03 | 显示全部楼层
也许是 C 语言以后的“观念”问题,谢谢诸位兄弟了。
回复 支持 反对

使用道具 举报

发表于 2005-12-30 16:13:00 | 显示全部楼层
建议去搜索 py2exe
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-2 14:05:28 | 显示全部楼层
自己查找了一下,发现有一篇相关的文章很受益。大家也可以参考以下:

http://blender.bokee.com/523381.html

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


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

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

2。Installer  http://www.mcmillan-inc.com/installer_dnld.html
可以产生windows、linux平台的可执行文件,现在作者主页连不上去了,但是搜索一下可以在其它地方下载
自带一个小程序写配置文件,如果程序较复杂,还是需要手工修改这个配置文件。支持从py15以来的所有Python版本
2005年9月,冰冻牡蛎更新:Giovanni Bajo获得Gordon McMillan's Installer的授权、版权改变为GPL,并在http://pyinstaller.hpcf.upr.edu/继续开发PYinstaller。

3。Python自带的freeze(不过windows版本不带这个,你可以自己下载Python的源程序再找)。这个是我最不推荐的一种方法(为什么?自己看),不过如果你的Python程序要发布到其它工具不支持的平台上,可以考虑这个方法

4。新出来的Pyco    http://www.pythonapocrypha.com/projects/pyco/
还没用过

5。Squeeze    http://starship.python.net/crew/fredrik/ipa/squeeze.htm
还没用过,只支持Python 1.4

6。cx_Freeze  http://starship.python.net/crew/atuining/cx_Freeze/
winodws、linux平台。简单的程序甚至都不需要写配置文件

7。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,如果真的可以这么做,还请告诉我。

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

9。Movable Python  http://www.voidspace.org.uk/python/movpy/
这个其实是使用py2exe制作的、可以放在U盘上的绿色Python。有使用py2app制作苹果版movpy和用cx_Freeze制作Linux版movpy的计划。懒到都不愿意学习py2exe、py2app或者cx_Freeze的人可以看看。

10。Shed Skin - A Python-to-C++ Compiler: 试验项目,windows上,连他的例子我都没有编译成功

11。Psyco: 给Python程序加速的东西,看不出对发布Python程序的直接好处,并且作者以后将致力于PyPy。

12。PyPy: 项目目标是纯Python实现的Python、速度比CPython快,将来可以帮助实现编译Python。

13。pyc: Python compiler in Python,一个用纯Python写的Python的bytecode编译器,可以优化输出的pyc文件。和PyPy一样,现在还看不出对发布Python程序的直接好处。只有py24的bytecode。


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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表