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.