在做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. 关于Map集合的遍历总结

    Map集合的遍历经常遇到,今天在这里总结一下Map集合遍历的几种方式: public static void main(String[] args){ Map<String,String> ...

  2. Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动

    如果我们习惯于数学坐标系,那么对于Silverlight中的坐标系可能会有些不习惯.因为在Silverlight中的坐标系与Flash中的坐标系一样,一切都的颠倒的.在标准的数学坐标系中,X轴表示水平 ...

  3. Web开发:Bootstrap的应用

  4. 前端(二):css样式

    本节笔记根据css中文手册整理,内容已做成思维导图.下载地址https://files.cnblogs.com/files/kuaizifeng/css.xmind.zip. css(Csacadin ...

  5. spring实现固定时间定时器

    此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. jar包介绍 1. spring-framework-4.3.4.RELEASE 的 lib ...

  6. 合理使用线程池 ThreadPool.QueueUserWorkItem()

    //==>自建线程 new Thread(() => { //线程任务 Console.WriteLine(Thread.CurrentThread.ManagedThreadId); } ...

  7. [Java反射基础二]获取类的信息

    本文接上文“Class类的使用”,以编写一个用来获取类的信息(成员函数.成员变量.构造函数)的工具类来讲解"反射之获取类的信息" 1.获取成员函数信息 /** * 获取成员函数信息 ...

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

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

  9. 安卓app应用开发资料

    android 配置文件画图 http://blog.csdn.net/loongggdroid/article/details/46687589 android下拉刷新控件 https://gith ...

  10. 07_Redis事务

    [简述] 事务是指一系列的操作步骤,着一些列的操作步骤,要么完全地执行,要不完全地不执行. 比如微博中: A用户关注了B用户,那么A的关注列表里就会有B用户,B用户的粉丝列表里就会有A用户. 这个关注 ...