之前还没有编译过Windows上的Python,打包发布一般使用py2exe和pyinstaller,生成的文件至少有3MB。而且Python只有VS的Project文件,也就是说,如果自己要用GCC来编译,就需要自己编写或者修改Makefile了。我是在Debian上安装了Mingw32之后,修改默认的Makefile来让它支持编译成Windows版本,而且源代码有大幅度改动,所以这里就不把过程写出来了,我也忘了做了多少修改。编译方法可以参考我的上一篇博文。建议有VS的同学还是选择VS编译比较方便,不用改动那么多。
图是我编译好的Python环境,运行以前写的Sogou代理脚本。这次我使用的是Python2.3这个版本,编译出来的文件用UPX压缩过之后,体积还是小的很可观。对比如下:
Python2.3(Windows): 不带库 412KB,带基本标准库 695KB
Python2.6(Linux): 不带库 800KB,带基本标准库 1.3MB
Python3.3(Linux):不带库 1MB,带基本标准库 2.1MB
这次Windows的Python2.3版本,编译了下面的内建模块:
标准库文件都打包进了libpy.dll,这不是一个动态链接库文件,而是一个zip压缩包,里面有标准库编译好的pyc。
编译好的Python.exe也改名成为runapp.exe了。而且默认参数运行的不是一个可交互的shell,如果要交互,可以随意加一个参数,例如-v之类的。
如果默认没有参数的话,会调用当前目录下一个叫main.app的pyc文件(编译好的py)。
做的这些修改,都是为了方便把Python运行环境部署和嵌入到其他应用之中。需要注意的是,毕竟不是一个完整的环境,所以某些功能例如SSL以及emails的标准库,都不在其中。我喜欢的urllib和SimpleHTTPServer还是有的,如果没有,可以自己打包进libpy.dll 😀
--2013年9月26日更新--
附 SogouProxy便携版:
下载 SogouProxy (Python2.3运行环境,695KB)
沙发 ?! 恩 貌似 windows 上搞这么小没什么用处啊
你编译的这个共享吗?在哪里下载?
sorry 🙂
发表太匆忙,忘了上传文件,哈哈!
已经更新,可以下载了。
编译过程懂了, 但是 「如果默认没有参数的话,会调用当前目录下一个叫main.app的pyc文件」是怎么做到的 🙂
改源代码哈~~ 根据自己的需求编译自己的版本,这是开源的一大好处 🙂
小怪兽?
制作小工具编译这么小还是有意义的
能不能做个直接运行.py文件的呢?我发现有时候编译成pyc后体积并没减少
另外,我现在用pythong2.7生成的.pyc文件不能用,还要再装个2.3,有点麻烦的样子,呵呵
版本不一样,生成的pyc不兼容的,建议还是装一个2.3的python再写脚本 🙂
这个代理能改成可配置,最小化任务栏图标啥的,甚至能2合一一下goagent就好了。
嗯嗯,有时间会这样做出来的,哈哈!!!
和goagent结合一下的话还是相当不错的!目前缺少ssl,我也没这么强大的能力去改,话说高三党每周只有一天电脑好苦逼
哪里的高三党每周还有一天电脑?
弄个zip格式的lib文件,有创意
有创意!SOLA病毒里也是这么做的。 🙂
当你的眼中不再只有代码,还有生活带给你的快乐与忧愁,遗憾与期待。
顶一个,我发现总是跟在博主的后边学东西,看到你搞个什么新东西,然后就准备也搞搞学习一下
技术牛人啊,膜拜
小虾,求下互链呗。
你是做那方面的呢?
就是一个自己的BOLG。,没事瞎整些东西……
请问一下博主,Please set your browser’s proxy to (”, 1998). 这句话是啥意思啊? 更改代理地址为空?端口是1998? 呵呵,多谢啊。
我不是xiaoxia,我也许能替他回答这个问题。
不是更改代理地址为空,要是你在本地运行代码的话地址为127.0.0.1;要是在别的电脑上运行的话,地址是那台运行代码的电脑的ip地址。
希望我的解答能给你带来帮助
空表示所有能访问本机的地址都可以吧
xiaoxia是不是很忙啊,好几个月都没更新blog了,是不是在研究更霸气的项目呢?
求个2.7版本,不会编译的路过
没有编译2。7的,你可以按照这个步骤或者网上的步骤试一下嘛 😀
哇,大虾现身了,是不是要有新的动静了?
小虾,搜狗好像已经关闭了校园网的代理,h0-h3只有在电信网络中才能连接,h4-h7、h12-h16已经彻底关闭。h8-h11能ping上,但已经不提供代理服务了。。。我这是陕西,你那边也是这样吗?
老大,我可以加你QQ吗,很想和你交流向你学习。请求你给我个机会好吗,345942785.会有奇迹吗
学习要靠自己,我也是。
您好!打扰了
阅读了博主您的《在Hadoop上运行基于RMM中文分词算法的MapReduce程序》,五体投地。有一些关于基于hadoop下的中文分词词频统计的小问题想要咨询您,不知道您方便吗?能够向您要一下您经常使用的联系邮箱,也好将问题写在邮箱里向您咨询?
可以发到我谷歌邮箱 gdxxhg AT gmail.com
文章写的很好,支持一下!希望博主,帮忙互踩一下!
随便,互交友情链接,,可以的话,联系方式QQ:445266420 验证:互交友情链接!
小虾你好久没写博客了
一年了,小虾还没写博客呢
给大家介绍的是Linux云平台噢,好处谁用谁知道 nitrous,大家应该都听说过,国外免费vps,云端linux开发环境,免费,不限流量,不需信用卡,也是放在亚马逊,可以架设很多类型服务现在给大家分享链接,利用这个ssh等翻墻方式,都没问题,关键是不限流量!可以免费注册https://www.nitrous.io/join/i928M5rjYtY?utm_source=nitrous.io&utm_medium=copypaste&utm_campaign=referral
小虾同志很久没写博客了~是换了站点还是荒废了呢~
好怀念写博客的日子,2015年一定更新!
每天来逛一逛,就是不见小虾同学更新博客~
2015年一定更新!
虾米的vps是linode的吧?
是的 🙂
搜狗的代理好像用不了了。校验算法貌似改了。?
搜狗可能换算法了…..
用不了了
是啊,失效了已经。
学长 我想问下 华南理工的 软件工程 和 计算机科学与技术 有什么区别 怎么样呢 还有选哪个好点呢 谢谢
学弟 准备报华工的 高三 学生一名
软件工程偏实践多一些。计算机偏理论多一些,学的东西更广泛,包括电子电路,物理之类的。我是计算机学院的。
怎么最近不见小虾活动了?
CentOS7 环境怎么弄。