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