2012-07-08 81 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子目錄下查找它。

相關問題