编译器,又叫解释器。简单讲,就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)。

CPython

当我们从Python官方网站下载并安装好Python 后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是用C语言实现Pyhon,是目前应用最广泛的解释器。最新的语言特性都是在这个上面先实现,基本包含了所有第三方库支持,但是CPython有几个缺陷,一是全局锁使Python在多线程效能上表现不佳,二是CPython无法支持JIT(即时编译),导致其执行速度不及Java和Javascipt等语言。

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的不同点。

PyPy针对CPython的缺点进行了各方面的改良,性能得到很大的提升。最重要的一点就是Pypy集成了JIT。但是,Pypy无法支持官方的C/Python API,导致无法使用例如Numpy,Scipy等重要的第三方库。而PyPy与CPython的不同在于,别的一些python实现如CPython是使用解释执行的方式,这样的实现方式在性能上是很凄惨的。而PyPy使用了JIT(即时编译)技术,在性能上得到了提升。

作者:Mangogo哥

链接:https://www.zhihu.com/question/20005950/answer/366367991

python编译器大全_Python编译器相关推荐

  1. python手机编译器推荐_Python编译器最新版|Python编译器手机版下载 v1.2 安卓版 - 数码资源网...

    现在互联网发展迅速发展,很多人开始往it行业发展,我给你们推荐一款很好的软件,Python编译器手机版主要为Python初学者提供直接运行的功能,能够随手验证一些小程序,Python编译器app支持直 ...

  2. python编译器路径_python编译器安装教程以及环境变量配置

    python解释器安装教程以及环境变量配置 python解释器安装教程 Python作为一门编程语言,其魅力远超C#,JАVa,C,C++,它被称为"胶水语言",更被热爱它的程序猿 ...

  3. python符号大全_python吊打Excel?屁!那是你不会用!

    相信大家总能在朋友圈刷到下图这种教育广告,python很强,但总是这么贬低Excel就没必要了吧. 直到我看见了下面的回复,笑喷! 实话实说,从数据分析的角度来看,excel的可视化要差一些,数据采集 ...

  4. python关键词大全_Python 批量获取Baidu关键词的排名并入库

    1.[代码][Python]代码 #-*- coding: UTF-8 -*- #Python UTF-8 抓取百度关键词V1.0 #key.txt是抓取文件配置 #author PHPer.yang ...

  5. python字符串大全_Python 字符串操作方法大全

    1.去空格及特殊符号 代码如下:s.strip().lstrip().rstrip(',') 2.复制字符串 代码如下:#strcpy(sStr1,sStr2) sStr1 = 'strcpy' sS ...

  6. python内置模块大全_python知识汇总(异常、内置模块和打包)

    python对异常的处理方式? python引入异常类处理异常情况. 异常的处理流程:发生异常->生成异常对象->提交给解释器->解释器捕获异常->调用异常已处理代码. 异常代 ...

  7. python画图大全_python画图教程

    python画图教程内容摘要 python画图教程这个方法是通过如何设置权限,郑州室内设计教程,1真品劳力士的把头.①注册微信:纹身师教程,1注册域名即是网址2申请网站空间3把要放到网上的资料做成网页 ...

  8. python作业大全_Python作业汇总 - osc_p8sbsl3n的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. info = 'abc' info[2] = 'd' 结果是什么,为什么会报错呢? info[2]已赋值,不能再次赋值."str"对象不支持项目分配 2. 如果要把上面的字符 ...

  9. python 模块大全_python第三方模块有哪些

    今天给大家整理了python常用的第三方库,一起来看一下吧. 1.Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它. 2.Scrapy.如果你从事 ...

  10. python 知识大全_Python基础知识汇总

    Python a.py     直接调用Python解释器执行文件 chomd +x a.py   ./a.py    #修改a.py文件的属性,为可执行,在用  ./  执行a.py 文件 2.简述 ...

最新文章

  1. 参观 Google 总部是一种什么体验?
  2. 一个hadoop hdfs put 文件失败的小情况
  3. cmake error C2220: 以下警告被视为错误
  4. 【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )
  5. Java中的synchronized与volatile关键字
  6. Java关于 class类的基础方法
  7. 未来客:人人都可以构建软件或系统
  8. redis的zset的底层实现_Redis中hash、set、zset有多牛?从底层告诉你数据结构原理...
  9. 12.性能之巅 洞悉系统、企业与云计算 --- 基准测试
  10. IBM DB2关键特性解析:DB2分区特性
  11. 免费SSL证书申请和部署
  12. java将图片转化为base64码
  13. Ruby + Passenger 5 分钟 入门
  14. 【设计】1359- Umi3 如何实现插件化架构
  15. 嵌入式_cpu微架构、互连结构与总线
  16. CSS -- 实现DIV层背景颜色渐变 (兼容IE 火狐 谷歌浏览器)
  17. 无法连接虚拟设备sata0:1,因为主机上没有相应的设备
  18. 上海基诺墙绘 中荷学生共同创作涂鸦 “We are伐木累”示好
  19. Windows开发之——Win10开机启动及启动设置
  20. css鼠标点击后取消光标焦点,光标设置透明

热门文章

  1. mac系统linux不能ping外网,Mac上配置Linux网络适配器(NAT模式),无法ping通
  2. [翻译][Trident] Storm Trident 教程
  3. Eclipse问题提示
  4. 部署SCOM2012 SP1
  5. 三层交换机SVI实现不同VLAN通信.
  6. Google的十个核心技术,互联网营销
  7. 如何打开浏览器的TLS 1.1 TLS 1.2支持
  8. DOM节点的属性和方法
  9. 王思聪吃热狗火了,程序员开发各种恶搞小程序!王校长:我不要脸的啊
  10. Day3-字符串-数组-正则表达式