繁体   English   中英

Visual Studio 不使用当前的 PTVSD 版本

[英]Visual Studio does not use current PTVSD version

设置

我使用 Visual Studio 2017 (V15.8.9) 和 python 工具。 当我尝试使用 ptvsd 进行远程调试时,我看到了不同的版本,具体取决于我导入 ptvsd 的位置。

在我当前环境的 visual studio 中打开 python 控制台并import ptvsd时,我总是得到安装在%ProgramFiles(x86)%\microsoft visual studio\2017\community\common7\ide\extensions\microsoft\python\core\ptvsd\中的版本 3.2.1.0 %ProgramFiles(x86)%\microsoft visual studio\2017\community\common7\ide\extensions\microsoft\python\core\ptvsd\

如果我在python环境下安装ptvsd,当前版本4.2.0就正确安装了。 但是当我重复上面的导入语句时,我仍然看到版本 3.2.1.0。 安装在核心中的包版本似乎覆盖了环境中安装的较新包。

在远程机器上安装并使用了当前版本的 PTVSD。 这会导致版本不匹配。

问题

在两台机器上使用 PTVSD 3.2.1 时,visual studio 在开始调试时会抱怨本地机器上会安装更新的版本 (4.1.1a9)。

问题

  • 我需要什么才能使用当前版本的 PTVSD?
  • 降级是唯一的选择吗?

几个星期以来,我一直在与 VS2017 中过时的 PTVSD 的明显问题作斗争。 我经常尝试更新 Visual Studio 本身(当前为 15.9.9),但仍然出现随机崩溃,通常涉及KeyError: 'matplotlib.pyplot ,以及其他挂起和无法击中断点的故障,直到我发现:

https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2017#troubleshooting

我使用这些步骤将 ptvsd 从 V3.2.1 升级到 V4.2.4,之后我的 Python 调试问题已经消失了:

  1. 导航到 Python Environments 窗口中的 Packages 选项卡。
  2. Select the Python environment used for your project (这从说明中看不出来)。
  3. 在搜索框中输入ptvsd --upgrade ,然后选择运行命令: pip install ptvsd --upgrade (您也可以在 PowerShell 中使用相同的命令。)

长话短说

使用遗留调试器。 这是与 Python 3.4 和 Microsoft Visual Studio 2017 和 2019 结合使用对我来说唯一有效的选项。遗憾的是,Microsoft 完全放弃了对 ptvsd 调试器的支持与 Visual Studio 2022。

要启用旧版调试器,请转到Debug -> Options... -> Python -> Debugging并选中Use legacy debugger 在 VS2017 和 VS2019 中,legacy debugger 都是基于ptvsd 3.2.1.0 (有一些辅助脚本参考 3.1 和 3.2)。 在附加到正在运行的 Python 进程之前,您需要在 Python 项目中导入该文件。

背景

视觉工作室 2017

它出现在微软的文档中(参见https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2017/python/debugging-python-in-visual-studio?view=vs-2017 #use-the-legacy-debugger ) 和 Visual Studio 2017 附带的调试器的源代码,Visual Studio 2017 中内置的 Python 调试器基于 ptvsd 4.1.1a9 调试器。 在我的 VS2017(专业版)发行版中,Visual Studio 2017 中使用的最新 Python 调试器实际上位于%ProgramFiles(x86)%\microsoft visual studio\2017\Professional\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\ ,(参见_version.py )。 但是,尝试使用 ptvsd 4.1.1a9、4.1.1 或更新版本(如 4.3.2)会导致无法连接到要调试的 Python 进程,或者导致 Visual Studio 频繁冻结。 我会把这种调试器支持命名为高度实验性的。

视觉工作室 2019

从 Visual Studio 2019 开始,微软显然放弃了对当时最新版本的debugpy的支持,转而支持他们选择作为默认 Python 调试器的 debugpy。 在某些情况下(例如 Python 3.4,debugpy 永远不可用),唯一的选择就是使用旧版调试器。 遗留调试器与 Visual Studio 2017 中的相同,即 ptvsd 3.2.1.0。

遗留调试器 (ptvsd)

你确实是对的,Visual Studio 中内置的旧版 ptvsd 存储在%ProgramFiles(x86)%\microsoft visual studio\2017\community\common7\ide\extensions\microsoft\python\core\ptvsd\ (将2017替换为2019 用于 VS2019 和Professional (使用您的 VS 版本)。 导入 ptvsd 时,此包会自动导入任何 Python 交互窗口,无论目标 Python 环境中安装了哪个版本——我想这是一个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM