CPython
外观
(重定向自Unladen Swallow)
原作者 | 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.