在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修改字典内key对应值的方法
Jul 11 Python
python实现决策树
Dec 21 Python
python操作oracle的完整教程分享
Jan 30 Python
使用Python对微信好友进行数据分析
Jun 27 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
python写日志文件操作类与应用示例
Jul 01 Python
Python读取csv文件实例解析
Dec 30 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
Mar 24 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
python中requests库+xpath+lxml简单使用
Apr 29 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
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
优秀应届生推荐信
2013/11/09 职场文书
数控技术应届生求职信
2013/11/13 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
酒店前台岗位职责
2015/04/16 职场文书
运动会新闻报道稿
2015/07/22 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
2016春节放假通知范文
2015/08/18 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
Golang jwt身份认证
2022/04/20 Golang
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS