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筆記本” 博客