Python源碼下載和目錄簡介
一、Python源碼下載
注:因為筆者學習的是Python3.7.4版本的源碼,所以就以3.7.4版本為例進行講解。
本文參考鏈接:https://flaggo.github.io/python3-source-code-analysis/preface/code-organization/
最佳方式:去Python官網下載——官網鏈接:https://www.python.org/downloads/release/python-374/
1、Linux操作系統下使用終端命令下載:
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz // 獲取源碼壓縮包
tar -xf Python-3.7.4.tgz // 解壓
2、非Linux操作系統下載:
(1)進入官網https://www.python.org/downloads/release/python-374/
(2)滑到最下面,會有如下操作系統版本下載,前兩個就是源碼包(分別為gz和xz的壓縮包),下載第一個Gzipped source tarball(直接點擊第一個的名字即可下載)。
(3)解壓下載的Python-3.7.4.tgz即可
二、源碼目錄簡介
解壓好之后得到的Python-3.7.4文件夾中有如下文件
.
├── aclocal.m4
├── CODE_OF_CONDUCT.rst
├── config.guess
├── config.sub
├── configure
├── configure.ac
├── Doc
├── Grammar
├── Include
├── install-sh
├── Lib
├── LICENSE
├── m4
├── Mac
├── Makefile.pre.in
├── Misc
├── Modules
├── Objects
├── Parser
├── PC
├── PCbuild
├── Programs
├── pyconfig.h.in
├── Python
├── README.rst
├── setup.py
└── Tools
我們不用關注所有的文件和文件夾,如下
.
├── Doc //文檔相關
├── Grammar //語法規則
├── Include
├── Lib //標准庫(都是用Python編寫的)
├── Modules
├── Objects
├── Parser
├── PCbuild
├── Programs
└── Python
其中:
Include 目錄:包含了 Python 提供的所有頭文件,如果用戶需要自己用 C 或 C++來編寫自定義模塊擴展 Python,那么就需要用到這里提供的頭文件。
Modules 目錄:包含了所有用 C 語言編寫的模塊,比如 math、hashlib 等。它們都是那些對速度要求非常嚴格的模塊。而相比而言,Lib 目錄下則是存放一些對速度沒有太嚴格要求的模塊,比如 os。
Objects 目錄:包含了所有 Python 的內建對象,包括整數、list、dict 等。同時,該目錄還包括了 Python 在運行時需要的所有的內部使用對象的實現。
Parser 目錄:包含了 Python 解釋器中的 Scanner 和 Parser 部分,即對 Python 源代碼進行詞法分析和語法分析的部分。除此以外,此目錄還包含了一些有用的工具,這些工具能夠根據 Python 語言的語法自動生成 Python 語言的詞法和語法分析器,與 YACC 非常類似。
PCbuild 目錄:包含了 Visual Studio 2003 的工程文件,研究 Python 源代碼就從這里開始(本書將采用 Visual Studio 2017 對 Python 進行編譯)。
Programs 目錄:包含了 Python 二進制可執行文件的源碼。
Python 目錄:包含了 Python 解釋器中的 Compiler 和執行引擎部分,是 Python 運行的核心所在。
注:其中Include、Python、Objects,這三個文件的內容是最重要的,后面也主要是解析這三個文件夾的內容。