Python解釋器的幾種實現版本

jopen 10年前發布 | 92K 次閱讀 Python Python開發

我們都知道python的解釋器有很多種實現方式,有C的,java的,還有python的等等,對應的也就是Cpython,Jython,一直比較火的PyPy ,今天就來盤點下這些版本(不一定非常全)

</blockquote>

CPython

CPython 是默認的python實現,環境或者是解釋器(你喜歡哪個就那么叫)。腳本大多數情況下都運行在這個解釋器中。 CPython是官方的python解釋器,完全按照python的規格和語言定義來實現,所以被當作其他版本實現的參考版本。CPython是用C語言寫的,當執行代碼的時候Pythond代碼會被轉化成字節碼(bytecode)。所以CPython是個字節碼解釋器。當我們從Python官網下載安裝包安裝,或者是通過類似 "apt-get" 或者 "yum"工具安裝的時候,安裝的都是CPython版本。

PyPy

*PyPy * 是一個很多地方都和CPython很像的實現,但是這個解釋器本身就是由Python寫成。也就是說開發者們用Python寫了一個Python解釋器。然而這個解釋器的代碼先轉化成C,然后在編譯。PyPy被認為要比CPython性能更好。因為CPython會把代碼轉化成字節碼,PyPy會把代碼轉化成機器碼。

Psyco

Psyco 是一個類似PyPy,但是很好的解釋器。現在已經被PyPy取代了,有可能的話,使用PyPy來代替Psyco。

Jython

Jython是用java實現的一個解釋器。Jython允許程序員寫 Python代碼,還可以把java的模塊加載在python的模塊中使用。Jython使用了JIT技術,也就是說運行時Python代碼會先轉化成 Java 字節碼(不是java源代碼),然后使用JRE執行。程序員還可以用Jython把Python代碼打成jar包,這些jar和java程序打包成的 jar一樣可以直接使用。這樣就允許Python程序員寫Java程序了。但是呢,必須要知道哪些Java模塊可以在Jython中使用,然后使用 Python的語法就可以寫程序了。Jython兼容python2,也可以使用命令行來寫交互式程序。

IronPython

IronPython 是使用C#語言實現,可以使用在.NET 和 Mono 平臺的解釋器。IronPython 是兼容 Silverlight 的,配合Gestalt 就可以直接在瀏覽器中執行。IronPython也是兼容Python2的。

tip: Mono 是提供.NET-compatible 工具的開源框架。

CLPython

CLPython 是用 Common Lisp實現的一個解釋器,現在不提倡使用。它允許 Python 和 Common Lisp 的代碼混合使用。 跟Python2兼容。

PyS60

PyS60 (Python for S60) 是諾基亞 S60 平臺的一個實現版本,不贊成使用。

ActivePython

ActivePython 是基于CPython然后添加一系列拓展的一個實現。是由ActiveState發布的。Python2 和 Python3 都兼容。

Cython

Cython(不是CPython)是一個允許把Python代碼轉化成 C/C++代碼或者使用各種各樣的C/C++模塊/文件的實現。換句話說,Cython是C/C++ 和Python的一個橋梁。Cython也是Python的一種方言。開發者也可以使用Cython來執行Python腳本,并且執行效率比 CPython更快。另外,開發者可以寫一個Python腳本,使用Cython來編譯成(linux上.so 或者是Windows上的.dll)類庫,然后當作一個Python模塊來使用。Cython腳本使用*.pyx作為拓展名。Cython兼容Python2和Python3。

tips: Python 模塊 modules 和 類庫libraries是一個東西,只是叫法不同。

QPython

QPython 是CPython解釋器的一個安卓接口。QPython 來自Python的安卓模塊。可以在 Google Play中找到QPython。

Kivy

Kivy 是一個開源的框架(使用Python解釋器),它可以運行在 Android, iOS, Windows, Linux, MeeGo, Android SDK, 和 OS X平臺上。 支持Python3, 開發者正在開發其兼容Cython上的Python3。

SL4A

SL4A (Scripting Layer for Android) 是一個允許安卓上執行各種腳本語言的兼容層。SL4A 有很多的模塊,我們比較關注的是“Py4A” (Python for Android)。 Py4A 是安卓平臺上的一種CPython。

其他

還有很多其他的不同實現。例如WPython,DSPython 請參見 Wiki

orangleliu#gmail.com 

REF: Python Tools and Software  Wiki

本文出自 orangleliu筆記本 博客

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!