成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

適合開發者的十大優秀Python編譯器

譯文
開發 后端
本文將向您介紹十種可用于將Python代碼,按需編譯為指定輸出格式,以充分釋放Python代碼潛能的優秀編譯器。

[[422759]]

【51CTO.com快譯】由Guido van Rossum于1991年創建的Python,如今已是發展最快、使用最廣的編程語言之一。它可以在諸如:Web應用、桌面開發、機器學習、人工智能、數據分析、以及數據可視化等領域,得到廣泛的使用。

值得注意的是,近年來,隨著Python生態系統的不斷發展壯大,業界出現了許多代碼庫、框架、以及編譯器,可用來加速Python,克服其應用限制,甚至能夠將Python與其他編程語言(如:Java、C、C++、JavaScript 等)協同使用。本文將向您介紹十種可用于將Python代碼,按需編譯為指定輸出格式,以充分釋放Python代碼潛能的優秀編譯器。

總的說來,目前由官方提供的、使用最廣泛的當屬CPython。當我們從官網處下載并使用Python時,CPython就是默認的編譯處理器。當然,在不同的領域和需求場景中,開發人員還會用到Jython、Brython、PyPy、Skulpt、IronPython、PyJs、Nuitka、WinPython等編譯器。

CPython

作為Python的原配編譯器,CPython是Python語言規范的參考實現。因此,它往往能夠最先獲得Python語言的所有最新、最強的功能。顧名思義,它是由純粹的C語言編寫而成。當然,您不但可以從Python代碼中調用C源代碼的函數,還可以直接在Python中使用大量現有的C代碼庫。

值得注意的是,由于CPython在運行時解釋的是字節碼(bytecode),因此它在每個進程上都會使用全局解釋器鎖 (global interpreter lock,GIL),以確保在同一時刻,只有一個線程正在解釋字節碼。

當我們調用CPython時,那些在.py文件中編寫好的源代碼,首先會被自動編譯成包含了Python字節碼的.pyc文件,然后在經由PVM(Python虛擬機)進行解釋??梢?,CPython其實是編譯器和解釋器的結合,而不像C語言那樣,可以直接將源代碼,編譯成為帶有CPU指令的二進制機器碼。

對于所有學生和初學者而言,CPython可以作為您開始Python編程之旅的第一步。當然,他們也可以使用其他編譯器,讓不同的編程語言與Python混合使用,去實現更多的特定開發需求。例如,下文將提到的Jython,會混合Java和Python代碼,利用現有的Java和Python庫,將代碼轉換為Java字節碼,以實現在JVM上運行Python。

Brython

作為JavaScript的“替代品”,Brython可用于在瀏覽器中運行包含了Python 3腳本的Web應用。也就是說,開發者只需要在那些運行著Python腳本的網頁上,包含brython.js即可。此處的brython.js是一種能夠在頁面上查找Python腳本,并通過Python代碼,以執行JavaScript各項操作的引擎。

Python

  1. <script type="text/javascript"  src="https://cdn.jsdelivr.net/npm/brython@3.8.10/brython.min.js"> </script> <script type="text/python">Pythoncode here</script> 

上面的代碼段展示了,在包含了brython.js之后,您可以使用腳本類型text/python,來添加Python腳本,并通過Python代碼,像JavaScript那樣去操作 DOM。

同時,您還可以進行Ajax的各種調用,并訪問本地的文件系統。當然,您也可以在基于Brython的Python腳本中,包含各種現有的JavaScript庫和框架,其中包括: Highcharts、vue.js、以及three.js等。

PyPy Python

雖然CPython是在Python中使用最廣泛的編譯器,但它并不是最快的一種。能夠支持Python 2和Python 3核心語言規范的PyPy,可以替代默認的Python實現。

在CPython中,字節碼在運行時被解釋,因此性能有所下降。而PyPy采用的是即時(just-in-time,JIT)的編譯概念。它在代碼執行之前,就直接編譯為機器代碼,因此其執行速度提高了接近4倍。

值得注意的是,Python代碼需要執行大量耗時處理的進程時,PyPy的速度優勢會比較明顯。而對于耗時較短的進程,JIT編譯器本身則可能消耗更多的時間,并抵消整體的速度優勢。

Jython或JPython

作為使用率第二高的一種Python實現,Jython最初被稱為JPython。它是通過Python語言來實現Java虛擬機的。

開發者既可以將現有的Java包和代碼庫,導入自己的Python程序中,又可以在Java程序中嵌入Python腳本。無論是哪種方式,Jython編譯器都會將帶有Java和Python的整體代碼組合,并編譯成為可以在JVM上運行的字節碼。

正是由于運行在JVM上,因此您可以在諸如:Windows、Linux、macOS、FreeBSD、以及Solaris等,幾乎所有的平臺上創建Jython項目。

Cython

Cython與CPython不同,它更像是一個超集,允許開發者在代碼中結合C和Python,從而生成C語言代碼類型的輸出,以供任何一種C/C++編譯器進行后續編譯。

可以說,Cython兼顧了C語言的速度、Python的靈活性,并且可以作為用Python編寫C擴展的強大工具。下面是有關Cython的重要說明:

  • 開發者可以在Python代碼中使用靜態類型的聲明
  • 可以調試使用由Cython、Python和C編寫的混合源代碼
  • 可以使用現有庫(如:NumPy、SciPy、以及CPython生態系統中的其他庫),去構建高性能的應用

如果說使用CPython可以為您提供解釋字節碼的速度,那么使用Cython則能夠為您提供預編譯為機器原生代碼的速度。

Skulpt

Skulpt是由Graham Scott創建的一個實驗項目,其流行的速度非???。作為Python在瀏覽器內的一種實現,Skulpt的主要目的是提供一種良好的在線式Python編譯器。當然它也可以通過讓Web應用引擎包含Skulpt,以方便開發者編寫出被用于前端的Python腳本。

值得一提的是,Skulpt會先將Python代碼轉換為JavaScript,然后在瀏覽器中執行相應的代碼。

Nuitka

由Kay Hayen開發和維護的Nuitka,是另一個用Python編寫的編譯器。雖然仍處于反復迭代之中,但它已經對默認的CPython實現進行了運行時(run-time)上的改進。

目前,Nuitka的工作原理是將Python代碼編譯為C語言代碼,并利用libPython進行最終執行。當然,Nuitka的最終計劃是將其替換為原始的純C語言的數據類型,而不必再去借用libpython。

注意,Nuitka可以在Apache的許可證下免費被使用,并且可以在Linux、Windows、macOS、以及其他平臺上被設置使用。

IronPython

于2006年首發的IronPython,是.NET框架的Python實現。它支持.NET core和.NET Standard,可以運行在Windows、macOS和Linux平臺上。IronPython之于.NET Framework,就像Jython之于Java。

借助IronPython,開發者可以使用所有的Python庫、.NET Framework、以及.NET支持的所有語言(如C#)。正是由于IronPython是用C #編寫的,因此如果您具有.NET的背景,則可以使用Python擴展工具,輕松地為Python設置VS代碼。當然,您可以根據Apache許可證,免費使用該編譯器。

PyJS

PyJS是另一款完全用Python,而非JavaScript或HTML去開發Web應用的編譯工具。在后臺,PyJS會在使用內置的Ajax框架之前,將Python代碼編譯為JavaScript。

同時,PyJS帶有一個桌面版本,以便您能夠在桌面上運行被開發應用的,功能相對應的Web版本。

WinPython

WinPython是Python的“即用型”發行版。也就是說,用戶無需任何安裝,即可在Windows PC上運行。作為另一種Python的實現,WinPython編譯器不僅帶來了Python執行環境,而且還包含了諸如:Scipy、Numpy、以及Pandas等各種Python庫。

WinPython的特點在于,它既是面向數據科學家的全功能性科學環境,又是面向學生和初學者的便捷工具。

Transcrypt

Transcrypt更像是一個從Python到JavaScript的轉換器。也就是說,您可以使用Transcrypt將自己的Python代碼轉換為JavaScript。據此,您可以在Web應用或Node.js服務器中,使用已編譯的代碼,作為服務器端的應用程序。

通常,Transcrypt會生成可讀的JavaScript,您可以使用源映射(source maps)和Python源代碼,對其進行調試。同時,您還可以從該工具中獲得minifier、靜態類型驗證器、以及帶有Typescript的linter。

小結

上述介紹的十種編譯器,大多能夠使開發人員在自己的項目中混合、或匹配多種語言。當然,您也可以從如下方面,去選擇恰當的Python編譯器:

  • 需要利用其他編程語言的現有代碼庫。
  • 缺乏Java、JavaScript、C、甚至Python中某一方面的技能。
  • 需加速執行Python的運行時。

原文標題:The 10 Best Python Compilers for Developers ,作者: Sophia Rodriguez

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:華軒 來源: 51CTO
相關推薦

2021-03-01 09:00:00

數據庫Web開發

2010-04-06 08:38:36

PHP

2023-03-10 09:00:49

Swift開發者工具

2015-09-29 09:51:09

移動游戲開發技巧

2010-05-24 10:46:00

Web開發者

2010-11-30 08:44:38

2015-08-04 09:29:54

Python開發者

2011-12-29 10:01:03

Windows 8注意事項

2011-07-10 14:42:10

PHP

2018-04-26 22:52:46

Java開發編碼網站

2012-03-11 15:15:34

開發

2019-08-01 11:32:40

程序員技能開發者

2011-05-03 09:41:42

Android開發工具Android SDK

2012-06-13 01:23:30

開發者程序員

2014-04-16 10:10:58

應用測試

2016-06-01 09:59:30

開發者設計原則

2020-07-10 06:10:14

Python開發代碼

2017-01-15 10:18:59

LinuAI開源

2024-06-11 08:00:00

2011-03-21 14:43:48

成功應用移動開發者
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩美女 | 国产精品一区二区av | 中文字幕免费在线 | 免费一级大片 | 黄色网络在线观看 | 欧美午夜在线 | 日日操操 | 色网在线播放 | 国产亚洲一区二区三区 | 日韩www| 日本人爽p大片免费看 | 一区二区在线看 | 日本不卡一区 | 五月免费视频 | 成人亚洲视频 | 久久精品久久久久久 | 亚洲一区二区三区国产 | 久久久久久综合 | 免费一级欧美在线观看视频 | 日韩一区二区在线视频 | 97精品视频在线 | 97国产精品视频人人做人人爱 | 色一情一乱一伦一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 欧美在线激情 | 人人人艹 | 激情福利视频 | 亚洲国产精品久久 | av网站在线播放 | 草草视频在线观看 | 国产一区二区三区在线免费观看 | 亚洲交性 | 亚洲欧洲精品一区 | 视频一区二区在线观看 | 亚洲视频在线观看免费 | a成人| 自拍偷拍第一页 | 高清免费在线 | 中文字幕一区二区三区四区 | 欧美日韩专区 | 黄片毛片在线观看 |