CPython
原作者 | Guido van Rossum |
---|---|
開發者 | Python Software Foundation |
首次發布 | 1994年1月26日 |
當前版本 |
|
源代碼庫 | |
編程語言 | C |
平台 | 跨平台 |
類型 | Python程式語言直譯器 |
許可協議 | Python軟件基金會許可證 |
網站 | Python.org |
CPython是用C語言實現的Python解釋器。作為官方實現,它是最廣泛使用的Python解釋器。除了CPython以外,還有用Java實現的Jython,用.NET實現的IronPython,使Python方便地和Java程序、.NET程序集成。另外還有一些實驗性的Python解釋器比如PyPy。
CPython是使用字節碼的解釋器,任何程序源代碼在執行之前先要編譯成字節碼。它還有和幾種其它語言(包括C語言)交互的外部函數接口。
支持的平台
類Unix * AIX * BSD * Darwin * FreeBSD * HP-UX * IRIX 5以及更高版本 * 九號計畫 * Mac OS X * NetBSD * Linux * OpenBSD * Solaris * Tru64 *其它Unix |
桌面操作系統 * AROS * AtheOS * BeOS * Windows * Windows NT * OS/2 * RISC OS |
特殊的和嵌入式 * GP2X * iPodLinux * Nintendo DS * Nintendo Gamecube * Symbian OS Series60 * Nokia 770 Internet Tablet * Nokia N800 * Nokia N810 * Palm OS * PlayStation 2 * PlayStation 3(Linux) * Psion * QNX * Sharp Zaurus * Xbox/XBMC * VxWorks * Openmoko |
大型機和其它 * OS/390 * VMS * z/OS |
曾經支持的平台
PEP 11(頁面存檔備份,存於網際網路檔案館)列出了CPython停止支持的平台。
非官方的移植
這些版本沒有進入Python軟件基金會的官方版本,這些版本包含了為特定平台提供的模塊,如為PSP提供的圖像和聲音API以及為S60提供的SMS和照相機API。
- Amiga [2](頁面存檔備份,存於網際網路檔案館)
- AS/400 [3](頁面存檔備份,存於網際網路檔案館)
- DOS平台使用的DJGPP [4](頁面存檔備份,存於網際網路檔案館)
- PSP [5]
- Symbian [6]
- Windows CE/Pocket PC [7](頁面存檔備份,存於網際網路檔案館)
並發問題
在多處理器的計算機上使用CPython的主要問題來自CPython的全局解釋器鎖(Global Interpreter Lock,GIL),它使得CPython不能進行並發編程。[2]要做到並發編程,就必須為每一個線程運行一個解釋器。如果這樣的話,它們之間的通訊就非常困難。所以社區內一直在討論是否要從CPython中去除GIL。[3]
注釋
- ^ Martelli, Alex. Python in a Nutshell 2nd edition. O'Reilly. 2006: 5–7. ISBN 0-596-10046-9.
參考
- ^ https://www.python.org/downloads/release/python-3130/.
- ^ Python/C API Reference Manual: Thread State and the Global Interpreter Lock. [2021-02-05]. (原始內容存檔於2008-09-14).
- ^ Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?. [2009-05-30]. (原始內容存檔於2009-05-31).
延伸閱讀
- Shaw, Anthony. CPython Internals: Your Guide to the Python 3 Interpreter. Real Python. 2021. ISBN 9781775093343.