在做python开发的人,应该或多或少的听说过一点pypy吧。我猜。所以就不做背景介绍了,有不懂的同学可以看看这里:
1、什么是pypy: http://www.360doc.com/content/15/0625/08/13232598_480502243.shtml (简单总结一下就是:pypy是一种python的解释器,比标准的cPython要快很多。但是并不支持所有的cPython库,有一些特殊的包用不了)
2、为什么pypy比python快: https://www.zhihu.com/question/19588346 (简单的总结一下就是:有个东西叫JIT,可以动态编译)
这里只是简单介绍一下如何安装及使用。百度了一下资料有点残(当然也可能是因为百度比较残),还是把自己使用的过程记录一下。
 
pypy官网 http://pypy.org/ 里面有各种版本,有源码,编译好的二进制,还有适合不同操作系统的。建议下载带JIT的版本(废话,要不然用pypy干嘛)。奇葩的是我这里下载不了,就找同事要了一份编译好的版本。放在某目录中,假设此目录名为{pypy_dir},进入{pypy_dir}/bin/目录之后,用 ln -s 命令在/usr/bin中建立一个软链接。这样就可以把pypy当做命令来使用了。如果是源码版本,目录中有makefile文件,可以直接sudo make & make install。这样就算安装好了(理论上源码是这样安装的啊,不过我并没有实际尝试)。
可以写个程序来测一下速度:
import time
t = time.time()
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上: https://github.com/anpengapple/pypy_get_pip (由于代码比较大,上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倍。
鹅妹子嘤!

pypy入门:pypy的安装及使用介绍的更多相关文章

  1. PyPy与VirtualEnv的安装问题

    PyPy与VirtualEnv的安装问题 说明:本博客由bitpeach原创撰写,请勿商用.转载免费,请注明出处,谢谢. (零)背景 VirtualEnv工具的详细内容是什么,请自行百度.这里大概简介 ...

  2. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

  3. jmeter安装教程与新手入门(附jdk安装教程)

    一.前言 最近要对网站做性能测试,提到了并发数测试,查了下,还是决定使用jmeter来完成这项测试,这里总结了jmeter完整的安装教程,附上新手使用教程. 二.jmeter安装 1.jdk安装(jm ...

  4. [转] Spark快速入门指南 – Spark安装与基础使用

    [From] https://blog.csdn.net/w405722907/article/details/77943331 Spark快速入门指南 – Spark安装与基础使用 2017年09月 ...

  5. 『NiFi 学习之路』入门 —— 下载、安装与简单使用

    一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 ...

  6. Python3入门之软件安装

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 最近将我的Python笔记整理下,希望能对他人有所帮助,这是第一课,安装入门篇: windows下安装Python 1.下载,从这里下载:[下载链 ...

  7. Docker入门之 - 如何安装Docker CE

    原文:Docker入门之 - 如何安装Docker CE 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012055638/article/det ...

  8. 大爽Python入门教程 0-1 安装python

    大爽Python入门公开课教案 点击查看教程总目录 一 如何找到下载地址并下载 下面展示找到下载地址的方法步骤 嫌步骤太慢可直接跳到第4步, 查看详细下载地址 使用搜索引擎搜索python 打开搜索结 ...

  9. 树莓派2系统DietPi简单安装配置使用介绍

    DietPi在Raspberrypi.org上的原帖:http://dwz.cn/HSrmY 版本发布很频繁,给原作者们点个赞.功能会越来越多,而且作者的定制观点很明确,适合树莓派的使用. 之前关于D ...

随机推荐

  1. 【response-下载文件步骤】

    Java中都通用文件下载(ContentType.文件头.response.out四步骤) 1.设置文件ContentType类型 2.设置文件头 3.通过response获取ServletOutpu ...

  2. Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)

    正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Blend下能够设计出很多满意的动画作品,或许他具体是怎么实现的,通过什么方式实现的我们还是一无所知.本篇将续前面几篇基础动画之上,详细 ...

  3. C#基础知识-使用XML完成一个小程序(十一)

    上一篇中讲到XML基本的结构,还有增删改查的方法,这一篇中我们就来利用XML来完成一个简单的订单系统,主要是实现一个简单学生名单的增删改查,如果想要应用到实际的环境中建议考虑数据量的问题,如果数据量大 ...

  4. 解锁Spring框架姿势1

    Spring 介绍:Spring 框架是一个Java平台,它为开发Java应用程序提供全面的基础架构支持.Spring负责基础架构,因此您可以专注于应用程序的开发. Spring可以让您从" ...

  5. jqGrid用法汇总(全经典)

    1.支持多种类型的数据集合作为数据源 $("#grid1").jqgrid( ........ datatype: "xml", ........ ); XML ...

  6. jQuery中的pushStack

    在学习jquery源码的时候,学到了其中的pushStack方法,在这里记录一下 源码为 // Take an array of elements and push it onto the stack ...

  7. Iphone各个型号机型的详细参数,尺寸和dpr以及像素

    1.iPhone尺寸规格 2.单位inch(英吋) 1 inch = 2.54cm = 25.4mm 3.iPhone手机宽高 上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边 ...

  8. javascript判断一个元素是另一个元素的子元素

    function isParent (obj,parentObj){ while (obj != undefined && obj != null && obj.tag ...

  9. html+css模仿的锤子官方首页

    <div id="wrapper"> <header> <div class="container"> <h1> ...

  10. Visual Studio扩展与更新中插件被禁用,安装后无法使用

    在Visual Studio中的扩展与更新中安装插件后,显示[禁用],重新安装后仍然不能使用,但是VS默认安装的扩展却可以正常使用. 这里需要注意下方显示“当前不允许加载每用户扩展”,点击“启用每用户 ...