pypy⼊门:pypy的安装及使⽤介绍
在做python开发的⼈,应该或多或少的听说过⼀点pypy吧。我猜。所以就不做背景介绍了,有不懂的同学可以看看这⾥:
1、什么是pypy:(简单总结⼀下就是:pypy是⼀种python的解释器,⽐标准的cPython要快很多。但是并不⽀持所有的cPython库,有⼀些特殊的包⽤不了)
2、为什么pypy⽐python快:(简单的总结⼀下就是:有个东西叫JIT,可以动态编译)
这⾥只是简单介绍⼀下如何安装及使⽤。百度了⼀下资料有点残(当然也可能是因为百度⽐较残),还是把⾃⼰使⽤的过程记录⼀下。pypy官⽹⾥⾯有各种版本,有源码,编译好的⼆进制,还有适合不同操作系统的。建议下载带JIT的版本(废话,要不然⽤pypy⼲嘛)。奇葩的是我这⾥下载不了,就同事要了⼀份编译好的版本。放在某⽬录中,假设此⽬录名为{pypy_dir},进⼊{pypy_dir}/bin/⽬录之后,⽤ ln -s 命令在/usr/bin中建⽴⼀个软链接。这样就可以把pypy当做命令来使⽤了。如果是源码版本,⽬录中有makefile⽂件,可以直接sudo make & make install。这样就算安装好了(理论上源码是这样安装的啊,不过我并没有实际尝试)。
可以写个程序来测⼀下速度:
import time
t = time.time()
python怎么读取py文件for i in xrange(10**8):
continue
print time.time() - t
⽤cpython来测试,⽤时5.41043996811s,⽽pypy测试⽤时只有0.337416887283s。
。。。我似乎忘了⼀件重要的事:pypy的程序跟⼀般的python是⼀样的,代码不需要有什么改动。执⾏的时候,标准python⽤python xxx.py 来执⾏,⽽pypy⽤pypy xxx.py就好了,没有区别。
效果截图:
但是,仅仅执⾏标准python是远远不够的。python本⾝有个⾮常⼤的优势就是第三⽅库,想要什么⼏乎都有⼈写好了,为pypy的速度⽽抛弃这样的资源有点可惜。那么在pypy下能使⽤第三⽅库吗?当然能,不过pypy跟python是相互独⽴的,python中安装好的库在pypy中是不能使⽤的。so,我们需要安
装pypy版本的pip。⽹上到⼀份代码,可以⽅便的执⾏安装,我把它存在了我的github上:(由于代码⽐较⼤,上M了,github上没法显⽰,可以下载下来看)。只需要这段pypy代码,⽤ pypy get-pip.py 来执⾏,就可以安装setuptools,pip等⼯具了。装好之后可以看到{pypy_dir}/bin⽬录中多了pip等⼏个可执⾏⽂件。
现在就可以使⽤ {pypy_dir}/bin/pip install xxx 来安装第三⽅库了。需要注意的是,第三⽅库并不能完全⽀持。不过⼤部分都是可以的。⾄少我现在⽤到的dnslib,pydns,gevent都没有问题。⽽我的DNS服务器也因为pypy⽽顺利的速度提升了4倍。
鹅妹⼦嘤!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论