Python源码剖析笔记

阅读量: 鲁文奎 2021-04-22 12:04:34
Categories: Tags:

Python源码剖析笔记

python 虚拟机:
[python-cobra](file:///C:/Users/zhanghui03/Downloads/source-archive/python-cobra)

Python 架构

Python 总体架构

Python的整体架构可以分为三个主要部分:

Runtime Environment(Python运行时环境) 包括:

Python Core:
核心为解释器(Interpreter), 也称虚拟机.上图Interpreter中的箭头方向演示了Python运行过程中的数据流方向.

Python 源码下载

Python 源码下载地址:
Python2.7源码

下载后, 解压到本地即可.

Python 源码目录分析

源码目录:

Include: 该目录下包含了Python提供的所有头文件, 如果用户需要自己用C或C++来编写自定义木块扩展Python, 那么就需要在这里提供头文件
Lib: 该目录包含了Python自带的所有标准库, Lib中的库都是用Python语言编写的
Modules: 该目录中包含了所有用C语言编写的模块, 比如random、CStringIO等.Modules中的模块是哪些对速度要求非常严格的模块,而有一些对速度没有太严格
要求的模块, 比如os, 就用Python编写, 并且放在Lib目录下
Parser: 该目录包含了Python解释器中的Scanner和Parser部分, 即对Python源代码进行词法分析和语法分析的部分。除了这些, Parser目录下还包含了一些有用的
工具,这些工具能够根据Python语言的语法自动生成Python语言的词法和语法分析器, 与YACC非常类似.
Objects: 该目录包含了所有Python的内建对象, 包括整数、list、dict等.同时, 该目录还包括了Python在运行时需要的所有的内部使用对象的实现.
Python: 该目录下包含了Python解释器中的Compiler和执行引擎部分, 是Python运行的核心所在.
PCbuild:包含了Visual Studio 2003 的工程文件。

Window环境下编译Python

开发环境:

步骤:

  1. 用vs2019打开PCbuild下的python.vcxproj

  2. 如果pcbuild解决方案的启动项目不是python, 那么需要将python设置为启动项目.(右键python项目->设置为启动项目)

  3. 只编译python 和 pythoncore, 所以需要排除其他项目的编译.(右键pcbuild解决方案 -> 配置管理器)


    4.设置python 和 pythoncore的平台工具集(右键项目 -> 属性 -> 平台工具集-> 选择v110)

  4. 然后就可以直接编译了。 最后在PCbuild下会有python_d.exe 和 python27-d.dll

注意事项

在Python2.4的源码中, 许多数值的类型都是int 或 long, 而在Python2.5的源码中, Python自定义了一个新的类型Py_ssize_t. 一般的, 凡出现这个类型的地方, 都可以以int视之.