1. 程式人生 > 實用技巧 >Python原始碼下載和目錄簡介

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 執行的核心所在。

注:其中IncludePythonObjects,這三個檔案的內容是最重要的,後面也主要是解析這三個資料夾的內容。