Pycharm调试器不在断点处停止。

33

我有一个Flask项目需要调试(几个小时前还能正常工作),当我在调试这个项目时,我看到了以下内容:

Connected to pydev debugger (build 135.1057)
/Users/vantani/cp/bin/python /Applications/PyCharm.app/helpers/pydev/pydevd.py --multiproc --save-  
signatures --client 127.0.0.1 --port 49223 --file /Users/vantani/cp/unnamed/manage.py server
pydev debugger: process 484 is connecting

/Users/vantani/cp/lib/python2.7/site-packages/flask_cache/__init__.py:152: UserWarning: Flask-  
Cache: CACHE_TYPE is set to null, caching is effectively disabled.
warnings.warn("Flask-Cache: CACHE_TYPE is set to null, "
* Running on http://127.0.0.1:5000/
* Restarting with reloader
pydev debugger: process 498 is connecting

像我说的那样,这个设置一直很好用。现在,调试器不会停在断点处,而且调试窗口是空的。我发现 PyDev 创建了两个进程,我想这可能是导致问题的原因。我已经重启了我的机器,现在只有一个 PyCharm 进程在运行。


1
当您的程序在调试模式下运行时,如果您按左侧的“暂停程序”按钮会发生什么?如果它正常工作,您应该能够看到您按下该按钮时程序所在的帧。 - Arnaud P
这里也有同样的问题,使用PyCharm远程调试让我头疼不已。 - Nathan B
20个回答

1

在JetBrains论坛上有一个关于这个问题的长串讨论:https://intellij-support.jetbrains.com/hc/en-us/community/posts/360008107400-PyCharm-2020-1-not-stopping-on-breakpoints-anymore-。阅读该串讨论就像阅读黑魔法书一样,每个人都有自己的巫术 $^$#。

我在2021.1.1 CE和一个全新项目中遇到了这个问题。我的解决方案是将默认测试运行器更改为pytest。你的情况可能不同。如果那个串讨论是任何指示的话,明天下雨时调试可能会停止工作。

enter image description here


1
我从“Pycharm最近的项目”中删除了该项目,然后直接从代码库打开了该项目。现在它可以正常工作了。

1

我通过从 pytest.ini 中移除覆盖率配置解决了这个问题。


我有一个 tox.ini 文件,删除了覆盖率后,断点现在可以工作了。但我需要覆盖率报告。有没有办法在调试时使用一个 tox.ini 文件,在 CI 时使用另一个? - Junaed

0

虽然不是完全相同的情况,但如果您正在使用调试服务器来调试 Docker 容器,则唯一使断点停止的方法是为容器设置环境变量:

PYCHARM_DEBUG=True

PyCharm 版本:2022.2.2


0
我遇到了同样的问题。在我的代码中,有一段时间断点不再停止。
我发现这个链接 "https://dev59.com/_2kx5IYBdhLWcg3wCP2Y" 对解决这个问题非常有帮助。
我遇到了递归问题,不知何故异常被吞噬了。

0

移除 debug_toolbar 中间件后,调试器恢复正常。


0

对于所有遇到相同问题但无法解决的人,也许这个方法可以帮到你:

问题可能是pydev没有连接到其子进程。请检查调试器设置中的"在调试时自动附加到子进程?"选项是否已设置。您可以在文件 > 设置 > 构建、执行、部署 > Python调试器(当前版本的PyCharm)中找到它。

通常控制台中也会有一个简短的提示,但我没有注意到。


0

这是由于第三方模块引起的。我尝试了所有列出的解决方案,但都没有对我起作用。 我更改了我使用的解释器,现在它可以工作了。


0

我在使用docker-compose远程解释器时遇到了这个问题。当我将工作目录设置为我的项目根目录时,在运行/调试配置中,问题就消失了。我还重新启动了Pycharm并使缓存无效。


-1
对我来说,PyCharm实际上执行了一个不同的文件。如果你只是点击了运行按钮...尝试一下是否有所不同,如果你使用右键单击文件=> 运行'xy'。
或者仔细检查你要执行的文件的完整路径是否在运行配置中的“脚本路径”中指定。我曾经使用“解释器选项”中的文件名以及指定的“工作目录”。那样做可以起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接