[Python源码剖析] #0 准备工作
准备工作
下载
- python-cobra 作者提供的可视化Python虚拟机
- Small Python 作者提供的对Python的简化模拟
- pyc_parser 作者提供的pyc文件解析器
-
python2.5.0 该书使用的Python源码
PS: 这些资源是从网上搜集到,本人对其内容不负任何责任
VS2019 编译 Python2.5.0
- 原书使用VS2003,本人使用VS2019
- 使用PCBuild8下面的文件
- 修改解决方案的默认启动工程为Python
- 编译工程选择Debug,只勾选Python, Pythoncore
- 仅重新编译make_buildinfo, make_versioninfo
- 编译解决方案
BUG FIX
-
timezone -> _time_zone
- VS2019不支持
- 其余几个编译错误也是加个下划线 _ 就好
- pythoncore下的timemodule里 line:687附近
-
项目的配置问题
- 主要是compiler编译出的中间文件名和linker使用的文件名不匹配
- 需要在配置里设置pythoncore项目的输出文件名为python25_d
- 类似的ERROR都可以通过加上 _d 来解决。
-
导入_typesmodule.c
- _types module也就是_typesmodule.c是后来添加的,但是vc6和vc8 project files没有更新,所以连接的时候就找不到symbol _init_types ,因此我们需要将其导入工程里
- 方法:选中pythoncore子工程右键->添加->现有项…python2.5/Modules/_typesmodule.c