转自:

http://www.cnblogs.com/anpengapple/p/5586678.html

在做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):    continueprint 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倍。

鹅妹子嘤!

分类: Python

标签: pypy

转载于:https://blog.51cto.com/xoyabc/1937328

pypy的安装及使用介绍相关推荐

  1. linux yum 安装pypy,centos安装pypy(含pypy下载地址)

    今天ttlsa群友提问说pypy源码安装有问题,各种问题,有些人使用epel源yum安装,但是我发现我的epel没有pypy,在网上搜索了一番,找到了对应的rpm安装包,这边分享一下下载地址以及pyt ...

  2. SQL Server 2016 AlwaysOn 安装及配置介绍

    SQL Server 2016  AlwaysOn 安装及配置介绍 Always On 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. SQL Server 2012 ...

  3. 【学习笔记】Tableau安装与界面介绍

    Tableau安装与界面介绍 一.Tableau下载与安装 网址:https://www.tableau.com 首页进去就可以看到这么一堆吹牛逼的大话,糟了,是那种心动的感觉.但我们大可不必当真,直 ...

  4. [Python爬虫] scrapy爬虫系列 一.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  5. Centos 6.4下MySQL安装及配置介绍

    我们前面文章有介绍到的功能主要用于近期公司的环境架构建设,所以今天得文章也主要是为了公司的环境搭建的测试:继续废话一些,由于公司的站点服务器分别部署在中国和美国(两台),中国及美国的相关用户会不定时的 ...

  6. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  7. 鸿蒙系统可以安装的浏览器,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  8. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  9. 【2022软件创新实验室暑假集训】Java环境安装与基础介绍

    Java环境安装与基础介绍 文章目录 文章目录 Java环境安装与基础介绍 文章目录 Java 简介 主要特性 关于语言学习的选择 Python Java Go&Rust Java环境配置 J ...

最新文章

  1. synchronized 与 Reentrant均为可重入锁 区别后者比前者增加了长时等待可中断 设置是否公平锁 绑定多个条件
  2. 以太网,IP,TCP,UDP数据包分析【转】
  3. python中常见的一些题目汇总
  4. ShardingSphere 系列
  5. Vue build之后访问dist目录静态资源不加载问题解决
  6. JQuery: 实现筛选功能
  7. 阿里云数据库快速搭建疫情分析系统最佳实践
  8. SAE下的Memcache使用方法
  9. 5.3 递归最小二乘法
  10. coding ssh_exchange_identification: Connection closed by remote host
  11. 蓝桥杯(java)基础练习 龟兔赛跑
  12. 程序员职业6个阶段,你处于哪个?
  13. leetcode 删除链表中的节点
  14. 00018_流程控制语句switch
  15. 华为P50 Pro+最新渲染图曝光:双环形相机模组内有乾坤
  16. 移动安全-iOS(一)
  17. linux之我常用的20条命令( 之三)
  18. 深度探索C++对象模型读书笔记(2)
  19. Mac vscode花屏问题解决
  20. mysql5.6初级使用方法学习第三天

热门文章

  1. Scala的类和对象
  2. Scala标识符的命名规范
  3. javascript移动端 电子书 翻页效果
  4. javascript格式化时间(几秒钟前,几分钟前,几小时前,几天前...)
  5. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
  6. 安装Qt creator时出现 无法定位程序输入点_except1 于动态链接库MSVCR120.dll上
  7. delphi dbgrideh 遍历每一个单元格_用Python解数独[1]:求每个单元格的行值域
  8. kindeditor上传图片php,Kindeditor编辑器添加图片上传水印功能(php代码)
  9. eclipce如何配置mysql_如何在eclipse配置mysql数据库
  10. 计算机复试题库.doc,计算机基础知识面试题库.doc