[Python源码剖析] #0 准备工作

准备工作

下载

  1. python-cobra 作者提供的可视化Python虚拟机
  2. Small Python 作者提供的对Python的简化模拟
  3. pyc_parser 作者提供的pyc文件解析器
  4. python2.5.0 该书使用的Python源码
    PS: 这些资源是从网上搜集到,本人对其内容不负任何责任

VS2019 编译 Python2.5.0

  1. 原书使用VS2003,本人使用VS2019
  2. 使用PCBuild8下面的文件
  3. 修改解决方案的默认启动工程为Python
  4. 编译工程选择Debug,只勾选Python, Pythoncore
  5. 仅重新编译make_buildinfo, make_versioninfo
  6. 编译解决方案

BUG FIX

  • timezone -> _time_zone

    • VS2019不支持
    • 其余几个编译错误也是加个下划线 _ 就好
    • pythoncore下的timemodule里 line:687附近
      [Python源码剖析] #0 准备工作
  • 项目的配置问题

    • 主要是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