CPython 实现原理
  • README
  • 一、简介
    • 1.1 如何使用此书
    • 1.2 额外材料和学习资料
  • 二、获取 CPython 源码
    • 2.1 源代码里有什么?
  • 三、准备你的开发环境
    • 3.1 选IDE还是编辑器?
    • 3.2 安装Visual Studio
    • 3.3 安装Visual Studio Code
    • 3.4 安装JetBrains Clion
    • 3.5 安装Vim
    • 3.6 总结
  • 四、编译 CPython
    • 4.1 在 macOS 上编译 CPython
    • 4.2 在 Linux 上编译 CPython
    • 4.3 安装自定义版本
    • 4.4 make 快速入门
    • 4.5 CPython 的 make 目标
    • 4.6 在 Windows 上编译 CPython
    • 4.7 PGO 优化
    • 4.8 总结
  • 五、Python 语言和语法
    • 5.1 为什么 CPython 是用 C 语言而不是用 Python 语言来实现
    • 5.2 Python 语言规范
    • 5.3 分析器生成器
    • 5.4 重新生成语法
    • 5.5 总结
  • 六、配置和输入
    • 6.1 配置状态
    • 6.2 构建配置
    • 6.3 从输入构建模块
    • 6.4 总结
  • 七、基于语法树的词法分析和解析
    • 7.1 具象语法树生成器
    • 7.2 CPython 解析器-分词器
    • 7.3 抽象语法树
    • 7.4 要记住的术语
    • 7.5 一个示例:添加一个约等于比较运算法
    • 7.6 总结
  • 八、编译器
    • 8.1 相关源文件
    • 8.2 重要的专业术语
    • 8.3 实例化一个编译器
    • 8.4 未来标志和编译器标志
    • 8.5 符号表
    • 8.6 核心编译过程
    • 8.7 汇编
    • 8.8 创建一个 Code Object
    • 8.9 使用 Instaviz 展示 Code Object
    • 8.10 一个示例:实现约等于操作符
    • 8.11 总结
  • 九、求值循环
    • 9.1 构建线程状态
    • 9.2 构建帧对象
    • 9.3 帧的执行
    • 9.4 值栈
    • 9.5 例子:在列表中添加元素
    • 9.6 总结
  • 十、内存管理
    • 10.1 C 中的内存分配
    • 10.2 Python 内存管理系统设计
    • 10.3 CPython 内存分配器
  • 十一、并行和并发
    • 11.1 并行和并发模型
    • 11.2 进程的结构
    • 11.3 多进程并行
    • 11.4 多线程
    • 11.5 异步编程
    • 11.6 生成器
    • 11.7 协程
    • 11.8 异步生成器
    • 11.9 子解释器
    • 11.10 总结
  • 十二、对象和类型
    • 12.1 本章的例子
    • 12.2 内置类型
    • 12.3 对象和可变长度对象类型
    • 12.4 类型类
    • 12.5 布尔和整数类型
    • 12.6 Unicode 字符串类型
    • 12.7 字典类型
    • 12.8 总结
  • 十三、标准库
    • 13.1 Python 模块
    • 13.2 Python 和 C 模块
  • 十四、测试套件
    • 14.1 在 Windows 上运行测试套件
    • 14.2 在 Linux 或 MacOS 上运行测试套件
    • 14.3 测试标志
    • 14.4 运行特定测试
    • 14.5 测试模块
    • 14.6 测试工具
    • 14.7 总结
  • 十五、调试
  • 十六、基准测试、性能分析和追踪
  • 十七、下一步计划
    • 17.1 为 CPython 编写 C 扩展
    • 17.2 改进你的 Python 应用程序
    • 17.3 为 CPython 项目做贡献
    • 17.4 继续学习
  • 十八、附录
    • 18.1 C 预处理器
    • 18.2 基础 C 语法
    • 18.3 总结
  • 致谢
Powered by GitBook
On this page
Edit on GitHub
  1. 三、准备你的开发环境

3.2 安装Visual Studio

Previous3.1 选IDE还是编辑器?Next3.3 安装Visual Studio Code

Last updated 2 years ago

Visual Studio 的最新版本 Visual Studio 2019 内置了对 Python 和 Windows 上的 C 源代码的支持。我建议将它用于本书中的示例和练习。如果你已经安装了 Visual Studio 2017,那也可以。

注

编译 CPython 或完成本书不需要 Visual Studio 的任何付费功能。你可以使用免费的社区版。

但是,PGO 优化构建配置文件需要专业版或更高版本。

Visual Studio 可从 Microsoft 的 Visual Studio 网站免费获得。

下载 Visual Studio 安装程序后,系统会要求你选择要安装的组件。本书需要以下组件:

  • Python 开发工作负载;

  • 可选的Python原生开发工具;

  • Python 3 64 位(3.7.2)。

如果你已经安装了 Python 3.7,则可以取消选择 Python 3 64 位 (3.7.2)。若想节省磁盘空间,也可以取消选择任何其他可选功能。

安装程序将下载并安装所有必需的组件。安装最多可能需要一个小时,因此你可能想继续阅读并在完成后返回本节。

安装完成后,单击 Launch 以启动 Visual Studio。系统将提示你登录。如果你有 Microsoft 帐户则可以登录,或者跳过该步骤。

接下来,系统会提示你打开一个项目。你可以通过选择 Clone or check out code 选项直接从 Visual Studio 克隆 CPython 的 Git 存储库。

仓库位置输入 https://github.com/python/cpython,选择你的本地存储路径,然后选择 Clone。

然后,Visual Studio 将使用与 Visual Studio 绑定在一起的 Git 版本从 GitHub 下载 CPython 的副本。此步骤还为你省去了必须在 Windows 上安装 Git 的麻烦。下载最多可能需要十分钟。

重要

Visual Studio 将自动创建主干分支。在编译之前,确保在 Team Explorer 窗口中将分支更改为 3.9。切换到 3.9 分支是重要的一步。主干分支每小时变化一次。本书中的许多示例和练习不太可能适用于主干分支。

下载项目后,你需要通过单击 Solutions and Projects/pcbuild.sln 将 Visual Studio 指向 PCBuild/pcbuild.sln 解决方案文件:

截图不译。

现在你已经配置了 Visual Studio 并下载了源代码,你可以按照下一章中的步骤在 Windows 上编译 CPython。

7