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

之前还没有编译过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)

 

Windows上最小的Python运行环境,700KB》有50个想法

  1. fwindpeak

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

    回复
      1. ljl

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

        回复
  2. woqu

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

    回复
  3. Feiny

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

    回复
    1. vell001

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

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

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

      回复
  4. Songh

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

    回复
  5. 风中追风

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

    回复
  6. peach

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

    回复
  7. 赚神团队

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

    回复
  8. sHeF

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

    回复
  9. Guest

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

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

    回复
    1. Xiaoxia 文章作者

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

      回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据