Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试器未在Python的VS代码中的断点处停止_Python_Visual Studio Code_Vscode Debugger - Fatal编程技术网

调试器未在Python的VS代码中的断点处停止

调试器未在Python的VS代码中的断点处停止,python,visual-studio-code,vscode-debugger,Python,Visual Studio Code,Vscode Debugger,我刚刚安装了VS代码和Python扩展,但调试程序无法正常工作。每次我尝试使用调试器时,它都会跳过我设置的任何断点,并像正常情况一样运行程序 我在安装了Python 3.7.3和Python扩展的Windows10PC上使用VS代码。我按照这里的说明()在C:\python\u work\hello中创建了一个名为“hello”的测试文件夹,并在该文件夹中创建了一个名为“hello.py”的程序。hello.py如下所示。我尝试通过按绿色箭头和按F5来使用调试器,但这两种方法都不能使调试器正常工

我刚刚安装了VS代码和Python扩展,但调试程序无法正常工作。每次我尝试使用调试器时,它都会跳过我设置的任何断点,并像正常情况一样运行程序

我在安装了Python 3.7.3和Python扩展的Windows10PC上使用VS代码。我按照这里的说明()在C:\python\u work\hello中创建了一个名为“hello”的测试文件夹,并在该文件夹中创建了一个名为“hello.py”的程序。hello.py如下所示。我尝试通过按绿色箭头和按F5来使用调试器,但这两种方法都不能使调试器正常工作。下面还显示了我的“launch.json”文件

hello.py:

msg=“你好,世界!”
打印(msg)#断点
launch.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "stopOnEntry": true
        },
    ]
}
我希望底部栏变成橙色,程序在第二行停止,这样我就可以在预览窗格中检查局部和全局变量。相反,当程序运行时,底部的条保持橙色1/2秒,就像我按了“RunPython File in Terminal”一样,没有在断点处停止。请帮忙

设置
“justMyCode”:false
使其在断点处停止:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Debug Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "stopOnEntry": true,
            "justMyCode": false
        },
    ]
}

我也经历过同样的行为,并通过以下方式安装Python虚拟环境来解决这个问题:

[MyProjectFolder] \ venv
通过输入命令

python -m venv [MyProjectFolder]\venv
在控制台中

VS代码似乎期望的正是该文件夹结构

在我将venv文件夹结构直接安装到我的项目文件夹之前,即

[MyProjectFolder] \ Scripts
[MyProjectFolder] \ Lib
[MyProjectFolder] \ Include
[MyProjectFolder] \ pyvenv.cfg
不起作用,并导致了所描述的调试问题


作为参考:VS代码版本1.52.1和Python 3.8.5

我从Python版本3.7升级到版本3.9时遇到了同样的问题。后来我发现旧版本是32位,而我升级到的新版本是64位,这显然是问题的根源。卸载64位版本并安装32位版本的Python 3.9解决了我的问题,然后我可以再次使用Visual Studio代码断点功能。

如果您使用的是pytest cov模块,您可能还想看一下注意事项:

注意如果安装了
pytest-cov
覆盖模块,则VS代码在调试时不会在断点处停止,因为
pytest-cov
正在使用相同的技术访问正在运行的源代码。为了防止这种行为,在调试测试时,在
pytestArgs
中包括
--no-cov
,例如通过向调试配置中添加
“env”:“{”PYTEST\u ADDOPTS:“--no-cov”}

请参见下面的示例配置文件(
launch.json
):


我最近发现(2020年5月5日),使用Python3.9作为解释器,断点没有命中。安装3.8后,它将重新开始工作。

从Python 3.9降级到3.8对我来说很有效

VC代码1.56.2忽略了在Windows10版本20H2上运行Python3.9 64位的断点。安装Python3.8.10 64位修复了该问题。我只需要在VS代码中选择Python 3.8.10解释器,它现在可以识别断点。不需要更改配置文件,例如,我不需要“justMyCode”:false


我意识到这是一个老问题,但我的谷歌搜索让我找到了它。以前的许多答案不再适用。因此,我为2021年登陆这里尝试使用3.9的其他人发布了此修复程序。

对我来说效果很好。发送到终端以启动调试器的是什么?如下所示:
cd c:\python\u work\hello&&cmd/c“set”pythonionecoding=UTF-8“&&set”pythonunbuffer=1“&&C:\Python\Python.exe C:\Users\RohanPC\.vscode\extensions\ms Python.Python-2019.6.22090\pythonFiles\ptvsd_launcher.py--default--client--host localhost--port 49389 C:\Python\u work\hello\hello.py“
如果您可以在上提交一个bug,并提供一个GitHub项目或文件夹的zipfile,以重现问题,那么我们可以查看一下,看看是否可以找出问题所在。我刚刚重新安装了Windows,问题就解决了!非常感谢您的帮助。通常认为每天至少重新安装两次Windows是一种很好的做法。这很有效。。。我怎么能猜到这样的事情?奇怪的是,默认情况下它不是“真的”!我现在面临的另一个问题是,它不会在执行最后一行之后结束调试。它进入“runpy.py”。。。我应该如何修复这个问题?这会创建一个.venv,但不允许我选择一个venv解释器
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Tests",
            "type": "python",
            "request": "test",
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {"PYTEST_ADDOPTS": "--no-cov"}
        }
    ]
}