简介
当人们谈论起Python,他们不仅在说语言本身,还包括其具体实现。
就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Jpython等不同的Python执行环境来执行。
Cpython
一般情况下称呼的python就是指Cpython, 为了区别其他语言及避免歧义通常称为CPython。
- 用
C语言
实现的Pyhon,应用最广泛 - 把Python代码编译成中间态的字节码,然后由虚拟机解释
- 适合开源项目以及依赖C扩展包的项目
-
GIL(全局锁)
使Python在多线程效能上表现不佳, GIL 只在Cpython有 -
无法支持JIT
(即时编译)使Python执行速度较差
PyPy
是用RPython实现的解释器。RPython是Python的子集, 具有静态类型。
-
支持JIT
(即时编译), 速度性能上得到了提升 -
支持多重后端
(C, CLI, JVM) - 支持Python 2, 支持Python 3
-
不支持官方的C/Python API
, 导致许多重要的第三方库无法使用
Jpython
是一个将python代码编译成java字节码的实现
- 主要运行在
JVM
上, 可以导入并使用任何Java类
- 支持Python 2.7
IronPython
是一个针对.NET框架的Python实现
- 可以用Python和.NET famework的库
- 也能将Python代码暴露给给.NET框架中的其他语言
- 适合Windows环境的开发
- 支持Python 2.7
PythonNet
是一个近乎无缝集成的, 提供给本机已安装的Python .NET公共语言运行时(CLR)包。
- 与IronPython互补
- 可以在除外IronPython的环境中无冲突运行
- 支持Python 2.3-2.7
网友评论