最佳 Python 编译器

最佳 Python 编译器


发布日期: 2023-12-27 更新日期: 2023-12-27 编辑:xuzhiping 浏览次数: 269

标签:

摘要: 将一种编程语言编写的代码翻译成另一种编程语言的计算机程序称为编译器。Python 在增长最快的编程语言中处于领先地位。因此,能够满足不同项目需求的 Python 编译器并不稀缺。首先,编译器是将高级编程语言编写的源代码转换为较低级编程语言(例如机器代码)以创...

最佳 Python 编译器

将一种编程语言编写的代码翻译成另一种编程语言的计算机程序称为编译器。Python 在增长最快的编程语言中处于领先地位。因此,能够满足不同项目需求的 Python 编译器并不稀缺。首先,编译器是将高级编程语言编写的源代码转换为较低级编程语言(例如机器代码)以创建可执行程序的程序。

最佳 Python 编译器

尽管 CPython 编译器(-cum-interpreter)是事实上的 Python 编译器,因为它属于 Python 的参考实现,即 CPython,但开发人员还喜欢使用其他几种 Python 编译器。最好的7个列举如下:

1.Brython

Brython

  • 支持:Python 3 至 3.7

Brython 被称为“客户端 Web 编程的 Python 3 实现”,是一种流行的 Python 编译器,可将 Python 代码转换为 JavaScript 代码。Brython 适应 HTML5 环境,附带 DOM 对象和事件的接口。

Brython 是浏览器 Python 的缩写。它拥有广泛的功能,从创建简单的文档元素和拖放到 3D 导航。Python 编译器在 Firefox 中的性能比在 Google Chrome 中好得多。Brython 不仅支持所有现代浏览器,还支持移动网络浏览器。Python 编译器附带一个 JavaScript 控制台,可用于评估某些 JS 程序与编辑器中等效 Python 程序的执行时间。

根据 Brython 的创建者和首席开发人员Pierre Quentel 的官方博客,Brython 比 Pypy.js 和 Skulpt 快得多。在某些情况下,Python 编译器甚至比 Python 参考实现(即 CPython)更快。

Brython 支持 Python 3 的大部分语法,例如推导式、生成器和导入。它还提供对属于 CPython 发行版的多个模块的支持,并附带与 DOM 元素和事件交互的库。Brython 还支持最新的 HTML5/CSS3 规范,Python 编译器可以使用流行的CSS 框架,如 BootStrap3 和 LESS。

2.Nuitka

Nuitka

  • 支持:Python 2.6、2.7、3.3 至 3.7

Nuitka 是一个源到源的 Python 编译器,它采用 Python 代码并将其编译为 C/C++ 源代码或可执行文件。即使计算机上没有运行 Python,也可以使用 Nuitka 开发独立程序。

Nuitka 完全用 Python 编写,允许使用各种 Python 库和扩展模块。Python 编译器可用于 FreeBSD、Linux、macOS X、NetBSD 和 Windows 平台,并根据 Apache 许可证版本 2.0 获得许可。Nuitka 还可以与 Anaconda 一起使用,适合那些喜欢用它来开发涉及数据科学和机器学习的项目的人。

3.PyJS

PyJS

  • 支持 :最高 Python 2.7

对于那些希望编写 Python 代码并在 Web 浏览器中执行它的人来说,PyJS 是首选选项之一。PyJS 编译器将 Python 代码转换为等效的 JavaScript 代码,以便它可以在 Web 浏览器中执行。

PyJS 的一个重要方面是它附带了一个 AJAX 框架,该框架填补了不同 Web 浏览器可用的 JS 和 DOM 支持之间的空白。为了生成等效的 JS 代码,PyJS 利用 Python 的抽象语法树。可以使用 PyJS Desktop 模块将 Python Web 应用程序源代码作为独立桌面应用程序(在 Python 下运行)运行。有趣的是,一些 Unix 系统预装了 PyJS 和 PyJS 桌面版本。

尽管Python 和 JavaScript 之间存在差异,但这两种流行的编程语言之间的大多数数据类型都是相同的。使用 PyJS 时,某些 Python 数据类型会转换为自定义对象,例如列表。PyJS 是一个轻量级应用程序。此外,它可以直接从 Web 浏览器使用,并允许从 Web 浏览器 JS 控制台执行程序。PyJS 编译器还提供对运行时错误的运行时支持。由于可以在 JS 代码中嵌入 Python 代码,JS 开发人员可以使用 PyJS 以纯面向对象的范式设计和开发应用程序。

4.Shed Skin

Shed Skin

  • 支持:Python 2.4 至 2.6

另一种流行的 Python 编译器是 Shed Skin。它将静态类型的 Python 程序转换为等效的纯 C++ 程序。静态类型意味着使用的变量只能推断单一数据类型。Shed Skin 不提供对某些常见功能的支持,例如使用嵌套函数和定义接受不同数量参数的函数。只有部分标准 Python 库函数可用于 Shed Skin。

作为一个实验性编译器程序,Shed Skin 可以将静态类型的 Python 程序转换为优化的 C++ 代码,但有一些限制。此外,Shed Skin 无法扩展到超过几千行代码。如果您的代码中需要 Shed Skin 不支持的模块,则必须将其删除并添加纯代码以复制所需的功能。

尽管处于实验阶段,Shed Skin 可以生成独立程序或扩展模块,这些程序或扩展模块可以在大型 Python 程序中导入和使用。使用 Shed Skin 的最大优点是它可以显着提高性能。这主要是因为 Python 编译器将内置的 Python 数据类型重新实现为自己的一组类,并以高效的 C++ 代码实现。

5.Skulpt

Skulpt

  • 支持:最高 Python 3.3

Skulpt 用 JavaScript 编写并在 MIT 许可证下可用,它提供了一个真正的环境,其中编译的代码以 JS 形式执行。由于 Skulpt 是 Python 的浏览器内实现,因此无需在 Web 浏览器中运行 Python 所需的额外处理、插件或服务器端支持。任何用 Skulpt 编写的 Python 代码都会直接在 Web 浏览器中执行。

对于希望制作 Web 应用程序的开发人员来说,Skulpt 是一个不错的选择,该应用程序允许用户在 Web 浏览器中运行 Python 程序,同时保持后台服务器的安全。流行的 Python 编译器也可以轻松嵌入到现有的博客或网页中。对于自定义集成,可以将 Skulpt 代码添加到 HTML 中,还可以教 Skulpt 如何导入您自己的自定义模块以获得更多控制。虽然 Skulpt 将 Python 代码翻译成 JS 代码,但它并不方便运行后者。

6.Transcrypt

Transcrypt

  • 支持:Python 3 至 3.7

另一种流行的 Python 编译器是 Transcrypt。它允许将相当广泛的 Python 子集编译成紧凑、可读且易于调试的 JavaScript 代码。Python 编译器遵循简单而强大的语法,不需要任何额外的扩展。Transcrypt 预编译为快速、可读的 JS 代码,可以使用源映射从 Python 源代码进行调试。轻量级 Python 编译器支持使用 [i:j:k] 矩阵进行切片以及使用 +、-、* 和 / 运算符进行向量运算。

Transcrypt 内置了 linter、压缩器和静态类型验证器。因此,Python 编译器可以更好地进行全面项目的团队合作。除了提供对任何JS 库的无缝访问之外,Transcrypt 还能够在 Node.js 之上运行。由于支持分层模块、本地类和多重继承,Transcrypt 拥有灵活稳定的整体结构。

7.WinPython

WinPython

  • 支持:最高 Python 3.7

WinPython 是专门为 Windows 操作系统创建的 Python 发行版。CPython 的早期版本并未针对 Windows 进行良好设计,因此存在许多错误。WinPython 的诞生就是为了解决这个问题。

尽管 CPython 的当前版本在 Windows 操作系统上高度稳定,但 WinPython 具有一些独有的功能。由于 WinPython 是一个独立的 Python 发行版,因此您只需下载并解压它即可开始使用。WinPython 还预打包了一些最流行的数据科学和机器学习 Python 库,例如 NumPy、Pandas 和 SciPy。因此,可以立即使用这些 Python 库。

WinPython 附带了许多捆绑功能,但在大多数情况下并不是必需的,例如 C 和 C++ 编译器。这可能是一个严重的限制,因为没有选项可以仅选择和下载所需的功能。尽管如此,WinPython 还是以零软件包选项提供,仅附带 Python 编译器,仅此而已。

相关推荐

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org