在做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. java中多线程中测试某个条件的变化用 if 还是用 while?

    最近在研究wait和notify方法,发现有个地方要注意,但是网上又说得不是很明白的地方,就是经典的生产者和消费模式,使用wait和notify实现,判断list是否为空的这个为什么要用while而不 ...

  2. 批量查找ip地址归属地脚本

    #!/bin/bash ip_list=`cat $1` for i in $ip_listdocurl http://www.ip.cn/index.php?ip=$idoneexit 0

  3. mybatis学习之高级映射

    一对一映射查询 1.数据库执行脚本: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.11-log : Database - db_mybatis *** ...

  4. 有趣的sql

    1.操作字段 a. 添加字段 alter table CompanyRegisterOrder add CreateTime datetime not null default getdate(), ...

  5. explode 把字符串打散为数组

    // 显示的字段列表 $smarty->assign('field_show', explode(',',$list_name)); explode(separator,string,limit ...

  6. IntelliJ IDEA 安装配置

    之前一直用的eclipse,以前公司的老大推荐过用这个,但是由于项目都比较赶,没及时学习. 后面这个公司的同时都用的idea,所以就换了 其实并没有那么难主要是刚刚切换时候快捷键不熟悉,打包什么的,有 ...

  7. jquery ajaxFileUpload异步上传文件

    ajaxFileUpload.js 很多同名的,因为做出来一个很容易. 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http:/ ...

  8. C语言--清理getchar缓存

    getchar()采用了缓冲区,而getch()才是立即获取,所以要想再用getchar()获取正确的值必须先清空缓冲区,如果是windows操作系统,用fflush(stdin)函数或rewind( ...

  9. ASP.NET 页面之间传递值的几种方式

    1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...

  10. linux php多版本

    ecshop还非php5.2 解压 gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1 打上php-fpm补丁再安装php ...