Python 源码阅读之准备工作

本文介绍了准备阅读Python 2.7.14源码的步骤,包括下载源码、理解目录结构、使用VS2013进行编译,并记录了编译过程中的注意事项和Hello World测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python源码阅读之准备工作

闲来无事, 想深入学习一下Python的实现机制, 因此阅读源码成为了我的不二选择, 在这里借鉴了”Python 源码剖析”一书, 也当做是这本书的读书笔记。

Python源码剖析 by 陈儒 ISBN: 9787121068744

此文是记录基本环境配置的过程,在这里我阅读的源码是Python 2.7.14,在跟随书中编译的过程中遇到了一些问题,在这里记录一下。

下载源码(官网有对应版本的源文件)

源码下载地址

目录结构

源码目录

Include: 包含了该目录下Python提供的所有头文件, 如果用户需要自己使用C/C++来编写自定义模块扩展Python, 将会用到这里提供的头文件.
Lib: 包含了Python自带的所有标准库.
Modules: 该目录包含了所有用Python语言写的模块(对速度要求严格).
Parser: 该目录包含了Python解释器中的Scanner和Parser部分, 即对Python源代码进行词法分析和语法分析的部分.
Object: 包含了Python所有內建对象.
Python: 包含了Python解释器中的Compiler和执行引擎部分, 是Python的核心.
PCBuild: 包含了VS工程文件.
编译(在这里使用VS2013)

首先要对解决方案进行配置, 只需要python/pythoncore两个部分即可.在这里startup首启动便是Python, 因此不需要修改.
这里写图片描述
这里写图片描述
然后重新生成解决方案之后就可以编译成功了.

Hello World

修改一部分源码, 测试成果.

/* ARGSUSED */
static int
int_print(PyIntObject *v, FILE *fp, int flags)
     /* flags -- not used but required by interface */
{
    long int_val = v->ob_ival;
    // 新添加内容
    PyObject* str = PyString_FromFormat("I am in int_print");
    PyObject_Print(str, stdout, 0);
    printf("\n");
    // end
    Py_BEGIN_ALLOW_THREADS
    fprintf(fp, "%ld", int_val);
    Py_END_ALLOW_THREADS
    return 0;
}

重新生成解决方案, 打开python_d.exe
这里写图片描述
看到我们新输入的内容, 编译成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值