在 Visual Studio 中安装 Python 解释器的调试符号

本文提供在 Visual Studio 中下载和集成 Python 解释器的调试符号的步骤。

为提供完整调试体验,Visual Studio 中的 Python 混合模式调试器需要 Python 解释器的调试符号来分析大量内部数据结构。 这些调试符号会在程序数据库 (.pdb) 文件中进行定义。 例如,python27.dll 库需要 python27.pdb 符号文件,而 python36.dll 库会使用符号文件 python36.pdb,以此类推。 解释器的每个版本还提供了各种模块的符号文件。

  • 在 Visual Studio 2017 及更高版本,Python 3 和 Anaconda 3 解释器会自动安装各自的符号,而 Visual Studio 则会自动找到这些符号。

  • 在 Visual Studio 2015 及更低版本中或针对其他解释器时,需单独下载符号,然后将 Visual Studio 指向这些文件。

当 Visual Studio 检测到缺少必要的符号时,会出现一个对话框并提示你采取措施。 启动混合模式调试会话时,通常会看到此对话框。 该对话框包括“打开符号设置”对话框链接,而该链接会打开针对调试>符号选项卡的工具>选项对话框,以及指向该文档文章的链接。

显示 Visual Studio 中提供缺少的所需调试符号的提示的屏幕截图。

先决条件

检查解释器版本

Python 的不同次要版本以及 32 位与 64 位版本之间存在符号差异。 请务必确认你的版本和 Python 版本,从而确保你具有正确的解释器符号。

若要检查正在使用哪个 Python 解释器,请执行以下操作:

  1. 解决方案资源管理器中,展开项目下的 Python 环境节点

  2. 找到当前环境的名称(显示为粗体)。

  3. 右键单击环境名称,然后选择在此处打开命令提示符

    随即打开一个命令提示符窗口,并指向当前环境的安装位置。

  4. 通过输入以下命令来启动 Python:

    python.exe
    

    执行过程会显示已安装的 Python 版本,并指明它是 32 位还是 64 位:

    显示如何使用打开的命令提示符打开当前环境的安装位置来检测 Python 版本的屏幕截图。

下载符号

以下步骤介绍如何下载 Python 解释器所需的符号。

  • 对于 Python 3.5 及更高版本,通过 Python 安装程序获取调试符号。

    1. 选择自定义安装,然后选择下一步

    2. 高级选项页面上,选中下载调试符号下载调试二进制文件的对应框:

      显示如何在 Python 3.x 安装程序中选择调试符号和二进制文件的屏幕截图。

    符号文件 (.pdb) 位于根安装文件夹中。 单个模块的符号文件也位于 DLLs 文件夹中。

    Visual Studio 会自动查找这些符号。 无需执行进一步的步骤。

  • 对于 Python 3.4.x 及更低版本官方分发版Enthought Canopy 会以可下载的 .zip 文件形式提供符号。

    1. 下载所需的符号文件。

      重要

      请务必选择与已安装 Python 版本和内部版本(32 位或 64 位)相对应的符号文件。

    2. 将符号文件提取到 Python 文件夹中的某一本地文件夹中,例如 Symbols

    3. 提取文件后,下一步是将 Visual Studio 指向这些符号

  • 对于 ActiveState Python 等其他第三方分发版,请联系该分发版的作者并请求对方为你提供符号。

    WinPython 包含标准 Python 解释器,且无需更改。 可将官方 WinPython 分发版中的符号用于相应的版本号。

将 Visual Studio 指向符号

如果单独下载符号,则请按以下步骤让 Visual Studio 发现这些符号。

注意

如果已使用 Python 3.5 或更高版本的安装程序来安装符号,Visual Studio 则会自动找到它们。 无需在本节完成这些步骤。

  1. 选择工具>选项,然后打开调试>符号选项卡。

  2. 在工具栏上选择添加(加号)。

  3. 输入提取已下载符号的文件夹路径。 此位置为 python.pdb 文件的所在位置,如 c:\python34\Symbols(如下图所示)。

    显示“工具选项调试”对话框中的混合模式调试器符号选项的屏幕截图。

  4. 选择“确定”

在调试会话期间,Visual Studio 可能还会提示你输入 Python 解释器的源文件位置。 如果已从 python.org/downloads/ 等位置下载源文件,则可将 Visual Studio 指向已下载的文件。

符号缓存选项

工具>选项调试>符号对话框还包含用于配置符号缓存的选项。 Visual Studio 使用符号缓存功能来创建从联机源获取的符号的本地缓存。

Python 解释器符号无需使用这些功能,因为符号已存在于本地。 有关详细信息,请参阅在 Visual Studio 调试器中指定符号和源文件

访问官方分发版的下载内容

下表列出了官方 Python 版本的下载信息。

Python 版本 下载
3.5 及更高版本 通过 Python 安装程序安装符号。
3.4.4 32 位 - 64 位
3.4.3 32 位 - 64 位
3.4.2 32 位 - 64 位
3.4.1 32 位 - 64 位
3.4.0 32 位 - 64 位
3.3.5 32 位 - 64 位
3.3.4 32 位 - 64 位
3.3.3 32 位 - 64 位
3.3.2 32 位 - 64 位
3.3.1 32 位 - 64 位
3.3.0 32 位 - 64 位
2.7.18 32 位 - 64 位
2.7.17 32 位 - 64 位
2.7.16 32 位 - 64 位
2.7.15 32 位 - 64 位
2.7.14 32 位 - 64 位
2.7.13 32 位 - 64 位
2.7.12 32 位 - 64 位
2.7.11 32 位 - 64 位
2.7.10 32 位 - 64 位
2.7.9 32 位 - 64 位
2.7.8 32 位 - 64 位
2.7.7 32 位 - 64 位
2.7.6 32 位 - 64 位
2.7.5 32 位 - 64 位
2.7.4 32 位 - 64 位
2.7.3 32 位 - 64 位
2.7.2 32 位 - 64 位
2.7.1 32 位 - 64 位

使用 Enthought Canopy 符号

Enthought Canopy 从版本 1.2 开始为其二进制文件提供调试符号。 这些符号会随此分发版一起自动安装。

  • 若要使用这些符号,请手动将包含这些符号的文件夹添加到符号路径中,如将 Visual Studio 指向这些符号中所述。

    对于 Canopy 的典型每用户安装,这些符号位于以下文件夹中:

    • 64 位版本:%UserProfile%\AppData\Local\Enthought\Canopy\User\Scripts
    • 32 位版本:%UserProfile%\AppData\Local\Enthought\Canopy32\User\Scripts

Enthought Canopy 1.1 及更低版本和 Enthought Python 分发版 (EPD) 不提供解释器符号。 这些版本与混合模式调试不兼容。