2012-07-08 36 views
24

Tôi muốn thử và tra cứu nguồn của một số mô-đun trong thư viện chuẩn Python, nhưng không thể tìm thấy chúng. Tôi đã thử tìm trong thư mục mô-đun sau khi tải xuống tarball python, nhưng nó có các tệp .c chủ yếu. Tôi cũng đã thử nhìn vào thư mục nơi python đã đi kèm với hệ điều hành (mac osx) có mô-đun của nó, và có vẻ như nó có chủ yếu là các tập tin .pyc và .pyo. Sẽ thực sự đánh giá cao nếu ai đó có thể giúp tôi.Tôi tìm mã thư viện chuẩn python ở đâu?

(Tôi đã thử những gì đã được đề xuất trong câu hỏi How do I find the location of Python module sources? không có may mắn)

+0

oh haha, tôi đọc ở đâu đó là cách tốt để tìm hiểu cách viết mã python tốt là đọc lên mã thư viện chuẩn. Tôi đoán tôi hiểu lầm. Đó là tất cả trong C? – iman453

+0

Các phần quan trọng về hiệu suất? Chắc chắn, chúng tôi muốn hiệu suất sau khi tất cả. Nó không phải là mã C xấu mặc dù;) Vẫn còn đủ công cụ viết python trong cpython. – Voo

Trả lời

27

Trong CPython, nhiều mô-đun được thực hiện trong C, và không có trong Python. Bạn có thể tìm thấy những người trong số Modules/, trong khi những người Python thuần túy cư trú trong Lib/.

Trong một số trường hợp (ví dụ mô-đun json), mã nguồn Python cung cấp mô đun và chỉ sử dụng mô đun C nếu có sẵn (để cải thiện hiệu suất). Đối với các mô-đun còn lại, bạn có thể xem PyPy's implementations.

+0

À, đúng rồi. Tôi nên nhìn xung quanh nhiều hơn trước khi đặt câu hỏi. Cảm ơn! Sẽ chấp nhận câu trả lời khi giới hạn thời gian cho phép tôi. – iman453

-1

Bạn có thể lấy mã nguồn của các mô-đun python thuần túy là một phần của thư viện chuẩn từ vị trí mà Python được cài đặt.

Ví dụ: C: \ Python27 \ Lib (trên cửa sổ) nếu bạn có đã sử dụng Trình cài đặt Windows để cài đặt Python.

1
+0

Tôi không chắc liệu điều này có trả lời câu hỏi của OP hay không. @ iman453 đã có một tarball; câu hỏi của họ là về những tập tin * nào trong tarball đó là thú vị. Tôi cũng hơi bối rối về câu trả lời này vì tôi tin rằng tôi đã chỉ vào kho lưu trữ Mercurial trong [câu trả lời được chấp nhận của tôi] (http://stackoverflow.com/a/11385592/35070), mặc dù tôi không đề cập đến Gương GitHub. – phihag

+2

GitHub giờ là nguồn gốc của sự thật (xem [PEP 512] (https://www.python.org/dev/peps/pep-0512/)). –

0

Tra cứu nó theo thư mục con Lib của thư mục cài đặt Python.

Các vấn đề liên quan