在做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. React.js 小书 Lesson20 - 更新阶段的组件生命周期

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson20 转载请注明出处,保留原文链接和作者信息. 从之前的章节我们了解到,组件的挂载指的是将组件 ...

  2. 酷炫字体背景图的实现——神奇的background-clip: text

    愉快的时光总是飞快,七天小长假已接近尾声,抓住假期的尾巴,再学个新知识点——css的background-clip: text属性...会不会有种陌生的感觉,毕竟在我们的印象里,background- ...

  3. JMS - ActiveMQ集成Spring

    下面是ActiveMQ官网提供的文档.http://activemq.apache.org/spring-support.html 下面是我添加的一些dependency: <!-- jms a ...

  4. nodejs中引入art-template模板

    使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便.没关系,这里我们使用art-template模板引擎,使 ...

  5. ORA-12541:TNS-12560:ORA-12518:ORA-28040:ORA-01017

    说明 环境(参考): Oracle 12c SQL Developer/Navicat Premium(64位)连接数据库 后续出现的错误代码: ORA-12541: no listener TNS- ...

  6. 简单测试Java线程安全中阻塞同步与非阻塞同步性能

    摘抄自周志明老师的<深入理解Java虚拟机:JVM高级特性与最佳实践>13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访 ...

  7. python的爬虫

    requests库的安装 https://blog.csdn.net/xiaokuang5020/article/details/80580631 Response对象属性 属性 说明 r.statu ...

  8. Linux From Scratch(从零开始构建Linux系统,简称LFS)(一)

    一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...

  9. 使用powershell 执行脚本,windows默认不允许任何脚本运行

    使用如下命令让PowerShell运行在无限制的环境之下: Set-ExecutionPolicy Unrestricted

  10. PAT 1038. Recover the Smallest Number

    #include <iostream> #include <cstdlib> #include <vector> #include <algorithm> ...