2012-07-08 80 views
24

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

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

+0

哦,哈哈,我读了一个地方,了解如何编写好Python代码的好方法是阅读标准库代码。我想我误解了。全都在C? – iman453 2012-07-08 18:32:13

+0

性能关键部件?当然,我们毕竟想要表现。尽管这不是不好的C代码;)仍然足够的python写在cpython中的东西。 – Voo 2012-07-08 19:39:48

回答

27

在CPython中,许多模块用C语言实现的,而不是在Python。你可以在Modules/找到那些,而纯Python的则位于Lib/

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

+0

啊,就是这样。在问这个问题之前,我应该多看看。谢谢!一旦时间限制让我接受答案。 – iman453 2012-07-08 18:35:38

-1

您可以从安装Python的位置获取属于 标准库的纯Python模块的源代码。

例如:C:\ Python27 \ Lib(在Windows上)如果您有 已使用Windows安装程序进行Python安装。

1
+0

我不确定这是否回答OP的问题。 @ iman453已经有一个tarball;他们的问题是关于那个tarball中的哪些*文件很有趣。我对这个答案也有点困惑,因为我相信我已经在[我接受的答案](http://stackoverflow.com/a/11385592/35070)中指出了Mercurial存储库,尽管我没有提到GitHub镜像。 – phihag 2016-08-02 14:50:20

+2

GitHub现在是真相的来源(请参阅[PEP 512](https://www.python.org/dev/peps/pep-0512/))。 – 2017-05-06 16:24:44

0

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

相关问题