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
看到我们新输入的内容, 编译成功。
相关文章推荐
- flask源码笔记:一,阅读Flask源码前的准备工作
- zookeeper源码阅读准备工作
- C/C++ 植入 python 准备工作(code::blocks+anaconda)
- 重新编译Linux内核必要性及其准备工作 分类: arm-linux-Ubuntu 2013-07-22 16:28 288人阅读 评论(0) 收藏
- 【Android OpenGL ES】阅读hello-gl2代码(一)准备工作
- Python编程快速上手—让繁琐工作自动化 PDF中文高清晰完整版+源码
- ClassPathXmlApplicationContext源码解析一:准备工作
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
- libevent源码分析之多线程准备工作
- CC2541 BLE源码阅读知识积累之外设从机Peripheral工作模式
- python学习之女神微博追追追(一)准备工作
- Azkaban的Web Server源码探究系列21: Flow执行前的准备工作
- Python 源码阅读:对象
- 【python】| 阅读内置源码学习字符串常用方法
- 深入理解 Android 卷I - 第一章 阅读前的准备工作
- spring framework 4 源码阅读(1) --- 前期准备
- 笨办法学Python笔记-习题0:准备工作
- 我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)
- e1000e驱动阅读-开始的准备工作