在PyCharm中三步完成PyPy解释器的配置的方法


Posted in Python onOctober 29, 2018

介绍方法之前,我们先说说Python的解释器,由于Python是动态编译的语言,和C/C++、Java或者Kotlin等静态语言不同,它是在运行时一句一句代码地边编译边执行的,而Java是提前将高级语言编译成了JVM字节码,运行时直接通过JVM和机器打交道,所以进行密集计算时运行速度远高于动态编译语言。

但是根据二八定律(帕累托法则),有80%的计算资源只被20%的程序所使用,因此在大部分情况下,原生的CPython解释器已经足够满足日常编程,加上很多科学计算库底层都是C/C++写的,一般不会用Python做密集计算。

然而,有个神奇的东西叫PyPy,它使用了JIT(即时编译)技术,混合了动态编译和静态编译的特性,仍然是一句一句编译源代码,但是会将翻译过的代码缓存起来以降低性能损耗。相对于静态编译代码,即时编译的代码可以处理延迟绑定并增强安全性。

现在官方最新版本是Python 3.5,当你从官网下载并安装好Python后,就自带了一个CPython解释器,是使用最广的Python解释器,我们在终端使用python xxx.py命令就是调用的CPython解释器。

我们刚才提到的Pypy也是一种解释器,使用pypy xxx.py命令即可。

亲测表示,密集计算时速度基本接近Java。

下面我们就说下怎么在PyCharm上安装Pypy解释器(以mac OS为例,其余系统后续再更新,过程其实是类似的)。

1.进入官网(http://pypy.org/download.html),可以发现,目前PyPy官方兼容Python 3.5的包还在beta阶段,只提供源码和Linux版的beta包,所以没有mac版的稳定包,但是2.7已经是稳定版,找到Mac OS X binary (64bit)即可下载兼容2.7的包。

在PyCharm中三步完成PyPy解释器的配置的方法

在PyCharm中三步完成PyPy解释器的配置的方法

如果有同学实在需要Python 3版本的Pypy,那就点击图中的All our downloads,找到pypy3.3-v5.5.0-alpha-osx64.tar.bz2下载,这是目前可以直接使用的最新的兼容Python 3的mac系统的包,3.5估计要等一段时间吧。

在PyCharm中三步完成PyPy解释器的配置的方法

2.好了,我废话太多了,无论你是下的pypy2-v5.8.0-osx64.tar.bz2还是pypy3.3-v5.5.0-alpha-osx64.tar.bz2,现在解压到任意目录下面。

3.打开PyCharm,进入Preferences,找到Project:Python下面的Project Interpreter,在下拉列表中你就可以看到你现在所有的Python解释器。

在PyCharm中三步完成PyPy解释器的配置的方法

在PyCharm中三步完成PyPy解释器的配置的方法

点击Show All,然后添加,选Add Local,

在PyCharm中三步完成PyPy解释器的配置的方法

找到你刚才解压pypy的目录,锁定到bin目录下面的pypy3.3,选中后OK。然后PyCharm会提示你Install相关的工具,点击后会自动补充相关的工具,最后点击OK即完成配置。

在PyCharm中三步完成PyPy解释器的配置的方法

重新打开Python Console即可发现解释器已经变成了PyPy,如果需要切换回原生解释器,再在Preferences里设置即可,这就是PyCharm方便之处。

在PyCharm中三步完成PyPy解释器的配置的方法

不过需要注意的是,绝大部分 Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要知道它们存在差异的地方,参考官方文档: http://pypy.readthedocs.org/en/latest/cpython_differences.html

以上这篇在PyCharm中三步完成PyPy解释器的配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单的Python抓taobao图片爬虫
Oct 26 Python
对于Python中线程问题的简单讲解
Apr 03 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
Python3 操作符重载方法示例
Nov 23 Python
快速入门python学习笔记
Dec 06 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
浅谈Django前端后端值传递问题
Jul 15 Python
Python tkinter实现日期选择器
Feb 22 Python
Python编解码问题及文本文件处理方法详解
Jun 20 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 #Python
Pycharm更换python解释器的方法
Oct 29 #Python
在Mac上删除自己安装的Python方法
Oct 29 #Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 #Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 #Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 #Python
PyCharm设置护眼背景色的方法
Oct 29 #Python
You might like
MySQL授权问题总结
2007/05/06 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
JavaScript基础知识之数据类型
2012/08/06 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
python中的字典详细介绍
2014/09/18 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
python基于ID3思想的决策树
2018/01/03 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python递归函数绘制分形树的方法
2018/06/22 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
一组SQL面试题
2016/02/15 面试题
幼儿园消防演练方案
2014/02/13 职场文书
新闻报道策划方案
2014/06/11 职场文书
学校会议通知范文
2015/04/15 职场文书
无工作证明怎么写
2015/06/15 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL