Python原始碼下載和目錄簡介
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,這三個檔案的內容是最重要的,後面也主要是解析這三個資料夾的內容。