CPython
当我们从Python官方网站下载并安装好Python 3.5后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
Pypy是用Python自身实现的解释器。针对CPython的缺点进行了各方面的改良,性能得到很大的提升。最重要的一点就是Pypy集成了JIT。但是,Pypy无法支持官方的C/Python API,导致无法使用例如Numpy,Scipy等重要的第三方库。这也是现在Pypy没有被广泛使用的原因吧。
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
psyco (被PyPy代替)
CPython最大的问题是他的C API,这部分没有很好的设计。其他部分的实现多少都受此影响。
当前CPython的架构过于简单,因而限制比较大,很难做到像JIT编译器那样的功能
PyPy已经支持多平台 (x86, 64_x86, ARM)
异步编程,yPy内置的 greenlet 比CPython的C扩展更适合一些
速度 – PyPy内置的JIT很棒,有时(其实很少)甚至可以与C相提并论
粘合代码 – 使用cffi可以简单的处理C库,甚至比CPython的ctypes还要快
方便应用在web和移动中 。
PyPy 是趋势。