【问题标题】:Pycharm debugger does not stop on breakpointsPycharm 调试器不会在断点处停止
【发布时间】:2015-02-08 14:59:35
【问题描述】:

我有一个烧瓶项目,我正在尝试调试(直到几个小时前它还可以正常工作) - 当我调试项目时,我看到以下内容:

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进程。

【问题讨论】:

  • 当你的程序在调试模式下运行时,如果你按下左边的Pause Program会发生什么?如果它有效,您应该能够在按下该按钮时看到您的程序所在的框架。

标签: python-2.7 debugging pycharm


【解决方案1】:

有时这可能是由于某些其他模块使用相同的跟踪 api (sys.settrace) 作为调试器,例如 Coverage.py。解决方案是转到您的 Rub/Debug Configurations 并将 --no-cov 标志添加到 Additional Arguments

或者,您可能希望删除 pytest 设置中的所有--cov(即pytest.ini)或使用--no-cov 标志运行测试,即

    pytest test.py --no-cov

这也可能是由错误的文件名引起的,例如您的文件/目录中包含特殊字符或空格。尝试删除它们或更改为例如下划线 (_)。

【讨论】:

  • 谢谢你,这个答案有帮助!
  • 没错!如果启用覆盖,调试将不起作用。
  • 您如何“转到您的摩擦/调试配置并将 --no-cov 标志添加到附加参数”?这是首选项中的某个框还是我在终端中输入的内容?
  • @ShepBryan 注意问题是关于 PyCharm 没有在断点处停止。此设置在 PyCharm here 中可用。如果您不使用 PyCharm,那么您需要在 --no-cov 添加到 pytest 标志的情况下运行测试(请参阅我的答案)。对于 VSCode,将 "env": {"PYTEST_ADDOPTS": "--no-cov"} 添加到相关的 launch.json 配置中。
【解决方案2】:

最近 PyCharm 中的调试器出现问题。 我在使用 PyCharm 2020.2 的 mac 上,虽然调试器会在测试时停止,但在为 django 运行开发服务器时它不会停止。

对我来说,禁用 Preferences > Build, Execution, Deployment 中的 Gevent compatible 选项有帮助。

值得注意的是,有些人建议启用,有些人建议禁用该选项 - 所以值得一试,看看是否对您的情况有帮助。

【讨论】:

  • PyCharm 2020.3.3(专业版)。取消选中 Gevent compatible 有帮助
  • 这对我也有用,gevent 兼容选项有什么用?
  • 它也对我有用
【解决方案3】:

只需要关闭flask的调试模式,比如

app.run(debug=False)

【讨论】:

  • 谢谢,这对我来说并不明显。
  • 这行代码复制到哪里?我是否将它放在我尝试运行的文件的顶部?
【解决方案4】:

我没有烧瓶项目,但我遇到了同样的问题。就我而言,我必须更改项目路径!里面有变音符号(ü,ä,ö)。通过删除它们,断点再次起作用。

【讨论】:

    【解决方案5】:

    检查你的 python 调试器设置,并清除你的缓存,这对我有帮助


    【讨论】:

      【解决方案6】:

      以下解决方法应该会有所帮助。我在一个简单的 Python 脚本中遇到了同样的问题。 PyCharm 调试器并没有在一个简单的断点处停止,而是一直运行到最后。

      感谢 Gabriel 的回答,我检查了脚本的路径,它有俄罗斯字母。因为我使用俄语 Windows,它使用俄语字母创建了名为“Administrator”的管理员用户。

      我将俄语字母更改为仅使用项目路径中的英文字母(只是将 PyCharm 项目文件夹复制到磁盘的根目录并从新位置重新加载我的项目。没有其他任何更改!)。并且调试器立即开始正常工作并在断点处停止!

      看起来这是一个错误,PyCharm 调试器无法使用路径中的不同国家字母。这种情况在英语国家以外很常见。

      【讨论】:

        【解决方案7】:

        我的问题在我安装 pydevd-pycharm 后解决了

        pip install pydevd-pycharm
        

        这里还有一个有用的链接来解决这个问题。 github from jetbrains intellij-community

        【讨论】:

          【解决方案8】:

          对于 Sanic 案例。 运行go_fast(..auto_reload=False,..)

          【讨论】:

            【解决方案9】:

            对我来说,我从“pycharm 中的最近项目”中删除了项目,然后我直接从存储库中打开了项目。它再次起作用。

            【讨论】:

              【解决方案10】:

              对于所有有相同问题但无法解决的人,也许这会起作用:

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

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

              【讨论】:

                【解决方案11】:

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

                【讨论】:

                  【解决方案12】:

                  这是由于第三方模块而发生的。我尝试了所有列出的解决方案,但没有一个对我有用。 我更改了我正在使用的解释器,它正在工作。

                  【讨论】:

                    【解决方案13】:

                    在 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。 YMMV。如果该线程有任何迹象,那么如果明天下雨,调试可能会停止工作。

                    【讨论】:

                      【解决方案14】:

                      最近(2021 年 7 月 PyCharms 2021.1.3 CE)有同样的问题,尝试了我在网上能找到的一切都行不通。然后在文件 --> 管理 IDE 设置 --> 恢复默认设置下找到,为我解决了这个问题。

                      【讨论】:

                        【解决方案15】:

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

                        【讨论】:

                          【解决方案16】:

                          对我来说,PyCharm 实际上执行了一个不同的文件。如果您只是单击了运行按钮...尝试使用时是否有所不同 右键单击文件=>运行'xy'。

                          或者仔细检查您要执行的文件完整路径是否在运行配置的“脚本路径”中指定。我曾经在“解释器选项”中使用文件名以及指定的“工作目录”。它会这样工作。

                          【讨论】:

                            猜你喜欢
                            • 2020-08-31
                            • 2023-03-12
                            • 2015-06-30
                            • 2010-11-25
                            • 2011-07-14
                            • 2013-09-27
                            • 2015-07-17
                            • 2017-11-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多