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

yipeiwu_com6年前Python基础

介绍方法之前,我们先说说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-pyinstaller、打包后获取路径的实例

python-pyinstaller、打包后获取路径的实例

使用pyinstaller可以把.py文件打包为.exe可执行文件,命令为: pyinstaller hello.py 打包后有两个文件夹,一个是dist,另外一个是build,可执行文...

Python 和 JS 有哪些相同之处

【嵌牛导读】Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python...

Python实现获取本地及远程图片大小的方法示例

Python实现获取本地及远程图片大小的方法示例

本文实例讲述了Python实现获取本地及远程图片大小的方法。分享给大家供大家参考,具体如下: 了解过Pillow的都知道,Pillow是一个非常强大的图片处理器,这篇文章主要记录一下Pi...

Python中PyQt5/PySide2的按钮控件使用实例

Python中PyQt5/PySide2的按钮控件使用实例

在之前的文章中,我们介绍了PyQt5和PySide2中主窗口控件MainWindow的使用、窗口控件的4中基础布局管理。从本篇开始,我们来了解一下PyQt5和PySide2中基础控件的使...

python脚本实现验证码识别

python脚本实现验证码识别

最近在折腾验证码识别。最终的脚本的识别率在92%左右,9000张验证码大概能识别出八千三四百张左右。好吧,其实是验证码太简单。下面就是要识别的验证码。 我主要用的是Python中的P...