当我们编写python代码时,我们得到的是一个包含python代码的以.py为扩展名的文本文件。要运行代码,就需要python解释器去执行.py文件。
由于整个python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写python解释器来执行python代码(当然难度很大)。事实上,确实存在多种python解释器。
cpython
当我们从python官方网站下载并安装好python 2.7后,我们就直接获得了一个官方版本的解释器:cpython。这个解释器是用c语言开发的,所以叫cpython。在命令行下运行python就是启动cpython解释器。
cpython是使用最广的python解释器。教程的所有代码也都在cpython下执行。
ipython
ipython是基于cpython之上的一个交互式解释器,也就是说,ipython只是在交互方式上有所增强,但是执行python代码的功能和cpython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了ie。
cpython用>>>作为提示符,而ipython用in [序号]:作为提示符。
pypy
pypy是另一个python解释器,它的目标是执行速度。pypy采用jit技术,对python代码进行动态编译(注意不是解释),所以可以显著提高python代码的执行速度。
绝大部分python代码都可以在pypy下运行,但是pypy和cpython有一些是不同的,这就导致相同的python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到pypy下执行,就需要了解pypy和cpython的不同点。
jython
jython是运行在java平台上的python解释器,可以直接把python代码编译成java字节码执行。
ironpython
ironpython和jython类似,只不过ironpython是运行在微软.net平台上的python解释器,可以直接把python代码编译成.net的字节码。
小结
python的解释器很多,但使用最广泛的还是cpython。如果要和java或.net平台交互,最好的办法不是用jython或ironpython,而是通过网络调用来交互,确保各程序之间的独立性。
本教程的所有代码只确保在cpython 2.7版本下运行。请务必在本地安装cpython(也就是从python官方网站下载的安装程序)。
此外,教程还内嵌一个ipython的web版本,用来在浏览器内练习执行一些python代码。要注意两者功能一样,输入的代码一样,但是提示符有所不同。另外,不是所有代码都能在web版本的ipython中执行,出于安全原因,很多操作(比如文件操作)是受限的,所以有些代码必须在本地环境执行代码。
相关推荐:《python教程》
以上就是什么是python解释器的详细内容。
