我在哪里可以找到`lib-dynload`中的模块源代码?

时间:2012-12-18 01:06:38

标签: python

许多内置库尽可能使用C实现。

例如,heapq使用lib-dynload/_heapq.so(如果可用)。

在哪里可以找到_heapq等模块的源代码?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

要查看任何版本的CPython的代码,请转到:

将3.3替换为3.2,2.3,无论旧版本如何。如果你知道你在寻找什么,你也可以明确地输入一个hg版本号而不是一个major.minor版本。

C模块主要位于Modules子目录中,每个子模块通常命名为foo.cfoomodule.c,而Python库位于Lib子目录中,命名为foo.py

对于heapq,实际的heapq模块使用Python(Lib/heapq.py),但它使用名为_heapq的{​​C}模块Modules/_heapqmodule.c )。

当然您也可以下载源代码。在http://python.org的首页上有最新2.x和3.x版本的“Source Distribution”的“快速链接”,或者您可以单击“下载”以获取所有其他版本。正如您所期望的那样,您可以在http://hg.python.org看到相同的结构。

相关问题