阅 读 文 章

关于脱离python环境运行的问题,再次重申。

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(xichen) | 时间:2007-05-27 | 浏览:人次 ]


http://wiki.woodpecker.org.cn/moin/PyProgFaq里面已经讲很清楚了。
特转贴过来,请大家根据情况来选择适合的方式。

如果你只是希望用户运行一个单独的程序而不需要预先下载一个python的发行版,则并不需要将Python代码编译成C代码。有很多工具可以找出程序依赖的模块并将这些模块 与程序绑定在一起以产生一个单独的执行文件。 

其中一种工具就是freeze tool, 它作为Tools/freeze被包含在python的代码树中。它将python字节码转换成C数组,和一个可将你所有模块嵌入到新程序中的编译器,这个编译器跟python模块链接在一起。 

它根据import语句递归地扫描源代码,并查找在标准python路径中的模块和源代码目录中的模块(内建模块)。用python写的模块的字节码随后被转换成C代码(可以通过使用marshal模块转换成代码对象的数组构 造器),并产生一个可自定义的配置文件,只包含程序使用了的模块。 最后将生成的C代码编译并链接至余下的的python解释器,产生一个与你的script执行效果完全一样的单独文件。 

显然,freeze需要一个C编译器。但也有一些工具并不需要。首先便是Gordon McMillan's installer,它在 

 http://www.mcmillan-inc.com/install1.html 

它工作在Windows, Linux和至少是部分Unix变种上。 
(注:在*nix下推荐此方式。通过make后得到一个独立的文件。)

另一个便是Thomas Heller的 py2exe (只适用于Windows平台),它在 

 http://starship.python.net/crew/theller/py2exe 

(注:在win下推荐此方式,使用简单,功能强大。缺点是会生成一大堆文件。和必须要python.dll)

第三个是Christian Tismer的  SQFREEZE,它将字节码附在一个特殊的python解释器后面,解释器负责找到这段代码。Python 2.4可能会引入类似的机制。 

其它工具包括Fredrik Lundh的  Squeeze 和 Anthony Tuininga的  cx_Freeze.



 1212everyday 回复于:2006-01-12 23:08:41

谢谢


 nyliubing 回复于:2006-01-13 21:00:04

好文


 newview 回复于:2006-01-16 15:54:35

好难懂哦。


 macrodba 回复于:2006-01-25 16:52:44

么看明白呢! 支持一下了!!!


 lvscar 回复于:2006-02-07 00:07:22

其实 最把稳的方法是。 把你的python程序 放在 <a href="http://www.activestate.com/Products/ActivePython/">activepython</a> 包里。   
但这样 包就有点大了 

但好处是 只要的你python程序 在activePython环境下运行通过   你可以毫无顾虑的在  几乎所有平台下运行。


 limodou 回复于:2006-02-07 00:21:22

activepython据我所知只能在windows下运行。因此所说的 

引用:几乎所有平台下运行


是不是改为在windows下运行。另外,这种方法与安装一个windows版的python有何区别?

许多软件还需要第三方的模块,activepython也不能包罗万象。


 lvscar 回复于:2006-02-07 12:56:08

呵呵。。新版本的  ActivePython 2.4.2.10支持的平台  恐怕已经能说几乎所有平台了吧

AIX/PowerPC    HP-UX/PA-RISC   Linux/x86   Linux/x86_64 (AMD64)   Mac OS X/PowerPC  Mac OS X/x86   Solaris 10/x86  Solaris/SPARC   Windows/x64 (AMD64)   Windows/x86
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 问题 再次 运行 环境 脱离 关于 回复 一个 python 模块

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.