11 个最佳的 Python 编译器和解释器
原作:Archie Mistry
翻译:豌豆花下猫@Python猫
原文:https://morioh.com/p/765b19f066a4
Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。
它拥有非常小的程序集,非常易于学习、阅读和维护。其解释器可在Windows、Linux 和 Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性等特性使得它更加容易被运用。
Python 库可用于以下用途:
- Web 开发
- 数据科学
- 机器学习
- 多媒体
- 软件开发
- 像 Django 这样的 Web 框架
- GUI 应用
大多数极客认为 Python 是解释性语言,但它也存在编译过程。
编译部分在代码执行时完成,并被删除。然后编译内容被转换为字节码。通过机器和操作系统进一步扩展到 Python 虚拟机。
本文重点介绍了适用于 Python 程序员的 11 种最佳的 Python 编译器和解释器。
最好的 Python 编译器和解释器
1.Brython

Brython 是一种流行的 Python 编译器,可将 Python 转换为 Javascript 代码。它提供对所有 Web 浏览器(包括一种手机 Web 浏览器)的支持。
它还支持最新的 Html5/CSS3 规范,可以使用流行的 CSS 框架,如 BootStrap3 和 LESS。
2. Pyjs

Pyjs 是一个丰富的 Internet 应用程序框架,也是一种轻量级的 Python 编译器,可以从 Web 浏览器直接执行 Python 脚本,可以从浏览器的 JS 控制台执行程序。
它是从 Python 到 Javascript 的编译器,可以使代码在 Web 浏览器上运行。它带有 Ajax 框架和 Widget Set API。
3. WinPython

它是为 Windows 操作系统设计的。它有一些 CPython 的特性。它预装了一些针对数据科学和机器学习的流行库,例如 Numpy、Pandas 和 Scipy。
它带有 C/C++ 编译器,大多数时候不会用到。除此之外,它只有 Python 编译器,没有其它包。
网址:https://winpython.github.io/
4.Skulpt

Skulpt 是 Python 的浏览器版实现,可以被添加到 HTML 代码中。
此 Python 编译器使用 Javascript 编写,在客户端运行代码,无需其它插件、加工或服务器支持。
Skulpt 解释器通过导入方式,来执行保存在网站上的 .py 文件中的代码。
5.Shed Skin

该编译器将 Python 标准库模块编译为 C++,它将静态类型的 Python 程序转换为很受限的优化的 C++ 代码。
通过将其内置的 Python 数据类型再次实现为自己的类集(可以用 C++ 高效实现),可以提高性能。
网站:https://en.wikipedia.org/wiki/Shed_Skin
6.Active Python

这是用于 Windows、Linux 和 Mac Os 的 Python 发行版,有免费的社区版。
它支持在许多平台安装,某些不被 Python-like 的 AIX 支持的平台,它也支持。它提供了比 Python 更多的兼容性。
网站:https://www.activestate.com/products/activepython/
7.Transcrypt

它是一种流行的将 Python 代码编译为简单易读的 Java 代码的编译器。它是一个轻量级的 Python 编译器,支持对矩阵和向量运算进行切片。
Transcrypt 也可以在 Node.js 上运行。分层模块、多重继承和本地类给其添加了很多功能。
8. Nutika

这是一种源码到源码的 Python 编译器,可以将 Python 源代码转换为 C/C++ 可执行代码。它会使用到许多 Python 库和扩展模块。
它自带 Anaconda,可用于创建数据科学和机器学习项目。
9. Jython

它用 Java 编写,可以在运行 JVM 的任何平台上执行。Jython 将 Python代码编译为 Java 字节码,从而做到跨平台。
它可用于创建 Servelets、Swing、SWT 和 AWT 软件包的解决方案。Jython 使用 CPython 之类的全局解释器锁(GIL) 。
另外,你可以将 Java 类扩展到 Python 代码。
10. CPython

CPython 是默认的且使用最广泛的 Python 编译器。它是用 C 语言编写的,并使用 GIL(全局解释器锁),这使得并发 CPython 进程之间的通信很困难。
CPython 中的编译步骤包括:解码、令牌化、解析、抽象语法树和编译。
网站:https://compilers.pydata.org/
11. IronPython

此版本的 Python 编译器是在微软的 .Net 框架和 Mono 上实现的。
它还提供了动态编译和交互式控制台。它使得安装非常容易,并且具有跨平台兼容性。
它还具有标准库和不同的模块,主要用于实现 .Net 框架的用户界面库。
结论
Python 是一种为许多实现提供了可能的开发语言,例如 Python 到 Java,Python 到 Javascript 或其它。
Python 的这些编译器有助于我们理解它是多么的全能。

公众号【Python猫】, 本号连载优质的系列文章,有喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等等,欢迎关注哦。
11 个最佳的 Python 编译器和解释器的更多相关文章
- Python 编译器与解释器
Python 编译器与解释器 Python的环境我们已经搭建好了,可以开始学习基础知识了.但是,在此之前,还要先说说编译器与解释器相关的内容. 如果这部分内容,让你觉得难以理解或不能完全明白,可以暂时 ...
- 详解python编译器和解释器的区别
高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器. 编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——链接器——可执 ...
- Python环境搭建-2 编译器和解释器
编译器与解释器 编译器/解释器:高级语言与机器之间的翻译官 都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理和翻译过程有不同而已. 那么两者有什么区别呢? 编译器:先整体编译再执行 解释器 ...
- [译]Python编写虚拟解释器
使用Python编写虚拟机解释器 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- Numba:高性能Python编译器
一.简介 Numba是一个开源JIT编译器,它将Python和NumPy代码的子集转换为快速机器代码. 二.主要特点 加速Python功能 Numba使用行业标准的LLVM编译器库在运行时将Pytho ...
- java编写编译器和解释器
on 2012-07-14 21:24 Bang 阅读(102) 评论(0) 编辑 收藏 续 第二部分 初始后端实现 框架后端支持编译器和解释器.现在框架抽象类Backend有两个极简版实现,一个 ...
- 第11章:使用Python打造MySQL专家系统
1.Python语言高级特性 1).深入浅出Python生成器 1).生成器函数:与普通函数定义类似,使用yield语句而不是return语句返回结果.yield语句一次返回一个结果,在每个结果中间挂 ...
- python设计模式之解释器模式
python设计模式之解释器模式 对每个应用来说,至少有以下两种不同的用户分类. [ ] 基本用户:这类用户只希望能够凭直觉使用应用.他们不喜欢花太多时间配置或学习应用的内部.对他们来说,基本的用法就 ...
随机推荐
- 谈谈数据库的 ACID(转)
一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. 二.ACI ...
- 我去!JS的原型是咋回事?
我去!JS的原型是咋回事? 最近写公司的项目,写着写着发现自己的原型的理解还是不够透彻,又去网上查了一番资料,顺便总结一下,在顺便给到的朋友能提供一点帮助.如有遗漏,欢迎交流. 原型是啥?为什么要用原 ...
- Python--day19--os模块
os模块 os模块是与操作系统交互的一个接口 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删 ...
- 最短路径Dijkstra算法和Floyd算法整理、
转载自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路径—Dijkstra算法和Floyd算法 Dijks ...
- 【Learning Notes】线性链条件随机场(CRF)原理及实现
1. 概述条件随机场(Conditional Random Field, CRF)是概率图模型(Probabilistic Graphical Model)与区分性分类( Discriminative ...
- Python--day24--继承面试题
输出:(打印的是Dog.func而不是Animal.func) __init__方法如果本生的类具有的话,父类的__init__方法就不在调用,没有才调用父类的__init__方法 派生属性: 如果既 ...
- Ralasafe
引用:http://www.baike.com/wiki/Ralasafe Ralasafe 是用Java编写的开源(MIT协议)访问控制中间件.它能够轻松处理登录控制.URL权限控制和(业务级)数据 ...
- H3C 递归查询
- WPF 一个性能比较好的 gif 解析库
本文介绍 Magick.NET ,这是 ImageMagick 的 .Net 封装,他支持 100 多种格式的图片,而 gif 也是他支持的.本文告诉大家如何使用这个库播放 gif 图 先给大家看一下 ...
- 关于vue-cli打包配置部署404
在vue脚手架(vue-cli)下我很很快的就可以搭建自己的开发环境,但是我们把项目编写完后,需要进行打包上线会遇到各种问题,在根据版本问题,(vue3的版本跟之前相比少了很多配置项),下面是我用老版 ...