您的位置:首页 > 编程语言 > Python开发

Python 源码阅读之准备工作

2018-02-28 11:12 316 查看

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



看到我们新输入的内容, 编译成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: