本文提供了在 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 检测到缺少必需的符号时,对话框会提示你采取措施。 启动混合模式调试会话时,通常会看到对话框。 该对话框包含两个链接,其中一个链接将打开此文档文章。
“打开符号设置”对话框将打开“工具>选项”窗格,指向“所有设置>>”部分。
打开符号设置对话框会打开工具>选项对话框的调试>符号部分。
先决条件
- 安装了支持 Python 工作负载的 Visual Studio。 有关详细信息,请参阅 在 Visual Studio中安装 Python 支持。
检查解释器版本
Python 的符号在次要版本以及 32 位和 64 位版本之间有所不同。 请务必确认你的版本和 Python 版本,以确保你具有正确的解释器符号。
若要检查正在使用哪个 Python 解释器,请执行以下作:
在 解决方案资源管理器中,展开项目下的 Python 环境节点 。
找到当前环境的名称(以粗体显示)。
右键单击环境名称,然后选择“ 在此处打开命令提示符”。
命令提示符窗口将打开到当前环境的安装位置。
输入以下命令启动 python:
python.exe执行过程显示已安装的 Python 版本,并指示它是 32 位还是 64 位:
下载符号
以下步骤介绍如何下载 Python 解释器所需的符号。
对于 Python 3.5 及更高版本,请通过 Python 安装程序获取调试符号。
符号文件 (.pdb) 位于根安装文件夹中。 单个模块的符号文件也放置在 DLL 文件夹中。
Visual Studio 会自动查找这些符号。 无需执行进一步的步骤。
对于 Python 3.4.x 及更早版本,符号可以从官方发行版或从 Enthought Canopy 下载为
.zip文件。下载所需的符号文件。
重要
请务必选择与已安装的 Python 版本和内部版本相对应的符号文件(32 位或 64 位)。
将符号文件提取到 Python 文件夹中的本地文件夹,例如 符号。
提取文件后,下一步是 将 Visual Studio 指向符号。
对于其他第三方 Python 分发版(如 ActiveState Python),请联系该分发的作者,并请求他们提供符号。
WinPython 包含标准 Python 解释器,无需更改。 可以使用官方 WinPython 分发行中与版本号相对应的符号。
将 Visual Studio 指向符号
如果单独下载了符号,请执行以下步骤,使 Visual Studio 能够识别符号。
注释
如果使用 Python 3.5 或更高版本安装程序安装了符号,Visual Studio 会自动查找符号。 无需完成本部分中的步骤。
打开 “工具>选项 ”窗格,然后展开“ 所有设置>调试>符号>搜索位置 ”部分。
在 符号文件 (.pdb) 位置 列表的工具栏上,选择“ + 添加”。
在 “添加项 ”对话框中,输入提取下载的符号的文件夹路径,然后选择“ 保存”。
指定 python.pdb 文件所在的位置,如 c:\python34\Symbols,如下图所示。
在调试会话期间,Visual Studio 还可能会提示你输入 Python 解释器源文件的位置。 如果从 python.org/downloads/ 下载源文件,则可以将 Visual Studio 指向下载的文件。
符号缓存选项
“所有设置>调试>符号”部分支持在搜索位置和搜索和加载子节中配置符号缓存的其他选项。 Visual Studio 使用符号缓存功能创建从联机源获取的符号的本地缓存。
“调试>符号”部分支持用于配置符号缓存的其他选项。 Visual Studio 使用符号缓存功能创建从联机源获取的符号的本地缓存。
Python 解释器符号不需要这些功能,因为符号已存在于本地。 有关详细信息,请参阅 Visual Studio 调试器中的指定符号和源文件。
官方分发版的访问权限下载
下表列出了官方 Python 版本版本的下载信息。
| Python 版本 | Downloads |
|---|---|
| 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 开始的二进制文件提供调试符号。 这些符号随软件包一起自动安装。
若要使用符号,请手动将包含符号的文件夹添加到符号路径中,如 Point 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),不提供解释器符号。 这些版本与混合模式调试不兼容。