首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python解释器类别和选择

Python解释器类别和选择

作者头像
后场技术
发布2020-09-03 11:56:02
5270
发布2020-09-03 11:56:02
举报
文章被收录于专栏:后场技术后场技术

一、Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用 >>> 作为提示符,而IPython用 In [序号]:作为提示符。

Jyhton

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

PyPy(特殊)

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术, 对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

还有其他RubyPython、Brython ...等!

以上除PyPy之外,其他的Python的对应关系和执行流程如下:

PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

参考:https://www.toptal.com/python/why-are-there-so-many-pythons

Python执行过程

Python执行首先利用编译器进行语法、词法分析,然后变成可执行文件pyc,最后执行代码。

小结

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后场技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Python解释器
    • CPython
      • IPython
        • Jyhton
          • PyPy(特殊)
            • IronPython
              • Python执行过程
              • 小结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档