如何使用virtualenv在VS代码中调试python?阿盖恩
我试图在venv中调试一个非常简单的脚本,而Python调试器拒绝开始工作 在Windows 10 x64上,Python扩展版本为2019.10.41019 python版本为3.7.1 32位 没有虚拟环境的调试工作正常。然后我在C:\TMP\PYENV中创建了一个venv,并在launch.json中添加了一个配置:如何使用virtualenv在VS代码中调试python?阿盖恩,python,visual-studio-code,virtualenv,Python,Visual Studio Code,Virtualenv,我试图在venv中调试一个非常简单的脚本,而Python调试器拒绝开始工作 在Windows 10 x64上,Python扩展版本为2019.10.41019 python版本为3.7.1 32位 没有虚拟环境的调试工作正常。然后我在C:\TMP\PYENV中创建了一个venv,并在launch.json中添加了一个配置: { "name": "Python: PYENV", "type": "python", "request": "launch", "prog
{
"name": "Python: PYENV",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"pythonPath": "C:\\TMP\\PYENV\\Scripts\\python.exe",
},
然后开始调试它。终端中的输出:
c:\TMP\PYENV>C:/TMP/PYENV/Scripts/activate.bat
(PYENV) c:\TMP\PYENV>C:\TMP\PYENV\Scripts\python.exe c:\Users\user\.vscode\extensions\ms-python.python-2019.10.41019\pythonFiles\ptvsd_launcher.py --default --client --host localhost --port 53150 c:\TMP\PYENV\myscript.py
脚本启动后,会找到venv中的所有本地导入,但会忽略所有我的断点。该脚本将运行(并在某个地方崩溃)
缺少什么
我搜索了相关问题和大多数建议,以定义带有“python.pythonPath”的配置。但这在当前版本中不再有效。它应该是“pythonPath”,如我上面的示例所示,或者VS代码(或python扩展?)抱怨名称无效。这是因为您将源代码放在虚拟环境中,这使调试器认为它不是您的代码,而是第三方代码。只需将代码移出即可。或者,您可以在调试器配置中,然后它将跟踪所有代码,而不仅仅是调试器认为您自己的代码。Brett,非常感谢!在其他的回复中,我看到了类似“不要放进he venv”的建议,但没有解释原因。我欠你一杯啤酒。@ddbug我不喝酒,但谢谢你的感情。:)