我在哪里可以找到python标准库代码?

时间:2012-07-08 18:29:37

标签: python

我想尝试查找Python标准库中某些模块的源代码,但无法找到它们。下载python tarball后我尝试查看modules目录,但它主要有.c文件。我也尝试查看已经附带OS(mac osx)的python所在的目录,其中似乎主要有.pyc和.pyo文件。如果有人可以帮助我,我会非常感激。

(我尝试了问题How do I find the location of Python module sources?中没有运气的建议)

5 个答案:

答案 0 :(得分:32)

在cpython中,许多模块都是用C实现的,而不是用Python实现的。您可以在Modules/中找到它们,而纯Python则位于Lib/

在某些情况下(例如json模块),Python源代码自己提供模块,只有C模块可用(以提高性能)。对于其余模块,您可以查看PyPy's implementations

答案 1 :(得分:2)

答案 2 :(得分:0)

在Python安装目录的Lib子目录下查找。

答案 3 :(得分:0)

这取决于您定义的标准库

Python Documentations说:

...此库参考手册介绍了标准库 使用Python分发。它还描述了一些可选的 Python发行版中通常包含的组件。

Python的标准库非常广泛,提供了广泛的 如下面列出的长目录所示。 该库包含内置模块(用C编写),这些模块提供 访问系统功能,例如文件I / O,否则将无法使用 Python程序员以及用Java编写的模块无法访问 提供针对许多问题的标准化解决方案的Python 发生在日常编程中。其中一些模块是显式的 旨在鼓励和增强Python程序的可移植性 通过将特定于平台的内容抽象到与平台无关的API中。

如果您采用广泛的标准,则Python Documentation会明确回答您的要求,我引用:

探索CPython的内部原理。

CPython源代码布局。

本指南概述了CPython的代码结构。它是模块和内置文件位置的摘要。

对于Python模块,典型的布局是:

Lib/<module>.py
Modules/_<module>.c 
Lib/test/test_<module>.py
Doc/library/<module>.rst

对于仅扩展模块,典型布局为:

Modules/<module>module.c
Lib/test/test_<module>.py
Doc/library/<module>.rst

对于内置类型,典型的布局是:

Objects/<builtin>object.c
Lib/test/test_<builtin>.py
Doc/library/stdtypes.rst

对于内置函数,典型的布局是:

Python/bltinmodule.c
Lib/test/test_builtin.py
Doc/library/functions.rst

一些例外:

builtin type int is at Objects/longobject.c
builtin type str is at Objects/unicodeobject.c
builtin module sys is at Python/sysmodule.c
builtin module marshal is at Python/marshal.c
Windows-only module winreg is at PC/winreg.c

答案 4 :(得分:-1)

你可以获得属于的python模块的源代码 来自安装Python的位置的标准库。

例如在:C:\ Python27 \ Lib(在Windows上),如果你有 使用Windows Installer进行Python安装。