Xiaoxia[PG]

Windows上最小的Python运行环境,700KB

Linux、我的分享50 条评论

之前还没有编译过Windows上的Python,打包发布一般使用py2exe和pyinstaller,生成的文件至少有3MB。而且Python只有VS的Project文件,也就是说,如果自己要用GCC来编译,就需要自己编写或者修改Makefile了。我是在Debian上安装了Mingw32之后,修改默认的Makefile来让它支持编译成Windows版本,而且源代码有大幅度改动,所以这里就不把过程写出来了,我也忘了做了多少修改。编译方法可以参考我的上一篇博文。建议有VS的同学还是选择VS编译比较方便,不用改动那么多。

python23

图是我编译好的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版本,编译了下面的内建模块:

builtin23

标准库文件都打包进了libpy.dll,这不是一个动态链接库文件,而是一个zip压缩包,里面有标准库编译好的pyc。

standard23

编译好的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)

#mingw#python#sogou proxy

50 条评论

  1. 沙发 ?! 恩 貌似 windows 上搞这么小没什么用处啊

  2. 你编译的这个共享吗?在哪里下载?

    1. sorry 🙂
      发表太匆忙,忘了上传文件,哈哈!
      已经更新,可以下载了。

  3. 编译过程懂了, 但是 「如果默认没有参数的话,会调用当前目录下一个叫main.app的pyc文件」是怎么做到的 🙂

    1. 改源代码哈~~ 根据自己的需求编译自己的版本,这是开源的一大好处 🙂

  4. 制作小工具编译这么小还是有意义的

  5. 能不能做个直接运行.py文件的呢?我发现有时候编译成pyc后体积并没减少
    另外,我现在用pythong2.7生成的.pyc文件不能用,还要再装个2.3,有点麻烦的样子,呵呵

    1. 版本不一样,生成的pyc不兼容的,建议还是装一个2.3的python再写脚本 🙂

  6. 这个代理能改成可配置,最小化任务栏图标啥的,甚至能2合一一下goagent就好了。

    1. 嗯嗯,有时间会这样做出来的,哈哈!!!

      1. 和goagent结合一下的话还是相当不错的!目前缺少ssl,我也没这么强大的能力去改,话说高三党每周只有一天电脑好苦逼

        1. 哪里的高三党每周还有一天电脑?

  7. 弄个zip格式的lib文件,有创意

    1. 有创意!SOLA病毒里也是这么做的。 🙂

      1. 当你的眼中不再只有代码,还有生活带给你的快乐与忧愁,遗憾与期待。

  8. 顶一个,我发现总是跟在博主的后边学东西,看到你搞个什么新东西,然后就准备也搞搞学习一下

  9. 小虾,求下互链呗。

    1. 你是做那方面的呢?

      1. 就是一个自己的BOLG。,没事瞎整些东西……

  10. 请问一下博主,Please set your browser's proxy to ('', 1998). 这句话是啥意思啊? 更改代理地址为空?端口是1998? 呵呵,多谢啊。

    1. 我不是xiaoxia,我也许能替他回答这个问题。

      不是更改代理地址为空,要是你在本地运行代码的话地址为127.0.0.1;要是在别的电脑上运行的话,地址是那台运行代码的电脑的ip地址。

      希望我的解答能给你带来帮助

    2. 空表示所有能访问本机的地址都可以吧

  11. xiaoxia是不是很忙啊,好几个月都没更新blog了,是不是在研究更霸气的项目呢?

  12. 求个2.7版本,不会编译的路过

    1. 没有编译2。7的,你可以按照这个步骤或者网上的步骤试一下嘛 😀

      1. 哇,大虾现身了,是不是要有新的动静了?

  13. 小虾,搜狗好像已经关闭了校园网的代理,h0-h3只有在电信网络中才能连接,h4-h7、h12-h16已经彻底关闭。h8-h11能ping上,但已经不提供代理服务了。。。我这是陕西,你那边也是这样吗?

  14. 老大,我可以加你QQ吗,很想和你交流向你学习。请求你给我个机会好吗,345942785.会有奇迹吗

    1. 学习要靠自己,我也是。

  15. 您好!打扰了
    阅读了博主您的《在Hadoop上运行基于RMM中文分词算法的MapReduce程序》,五体投地。有一些关于基于hadoop下的中文分词词频统计的小问题想要咨询您,不知道您方便吗?能够向您要一下您经常使用的联系邮箱,也好将问题写在邮箱里向您咨询?

    1. 可以发到我谷歌邮箱 gdxxhg AT gmail.com

  16. 文章写的很好,支持一下!希望博主,帮忙互踩一下!
    随便,互交友情链接,,可以的话,联系方式QQ:445266420 验证:互交友情链接!

  17. 小虾你好久没写博客了

    1. 一年了,小虾还没写博客呢

  18. 给大家介绍的是Linux云平台噢,好处谁用谁知道 nitrous,大家应该都听说过,国外免费vps,云端linux开发环境,免费,不限流量,不需信用卡,也是放在亚马逊,可以架设很多类型服务现在给大家分享链接,利用这个ssh等翻墻方式,都没问题,关键是不限流量!可以免费注册https://www.nitrous.io/join/i928M5rjYtY?utm_source=nitrous.io&utm_medium=copypaste&utm_campaign=referral

  19. 小虾同志很久没写博客了~是换了站点还是荒废了呢~

    1. 好怀念写博客的日子,2015年一定更新!

  20. 每天来逛一逛,就是不见小虾同学更新博客~

    1. 2015年一定更新!

  21. 虾米的vps是linode的吧?

    1. 是的 🙂

  22. 搜狗的代理好像用不了了。校验算法貌似改了。?

  23. 薛定谔猫态的大茶几2015年3月13日 19:32回复

    搜狗可能换算法了.....
    用不了了

    1. 是啊,失效了已经。

  24. 学长 我想问下 华南理工的 软件工程 和 计算机科学与技术 有什么区别 怎么样呢 还有选哪个好点呢 谢谢

    学弟 准备报华工的 高三 学生一名

    1. 软件工程偏实践多一些。计算机偏理论多一些,学的东西更广泛,包括电子电路,物理之类的。我是计算机学院的。

  25. 怎么最近不见小虾活动了?

  26. CentOS7 环境怎么弄。

发表评论

评论会经过自动审核,链接请勿超过 3 个。