我无法让 Python 调试器在 PyCharm 2022.1.2 和 Django 4 上运行。 当我在视图函数内设置断点,然后在浏览器中调用该视图时,在调试模式下启动时没有任何反应...
但是,当我将其设置为导入时,断点被命中。
我有 2 种配置,一种用于 Python,一种用于 Django Server,两者都不起作用。
查看了许多 JetBrains 票证,有人报告了类似问题,但没有找到解决方案。还尝试为 Python 而不是 Django Server 创建第二次运行配置,但这也没有帮助。
通过从顶级 django 项目目录中删除 .idea 目录解决了这个问题。不确定其背后的机制是什么,但它有效,现在断点工作完美。
我知道这个问题已经很老了,但我刚刚遇到了类似的情况,所以我会告诉你。
问题是,PyCharm 调试器使用
sys.settrace
函数来设置自己的跟踪功能,因此如果您有一个已经捕获此 API 的进程,则调试器在程序执行期间不会在断点处停止。
众所周知的案例是 pytest-coverage 模块,但我遇到了另一个案例。
我启用了
django-debug-toolbar-line-profiling
模块,它同样捕获了 sys.settrace
并取代了调试器。
因此,如果您的调试器在某个地方停止工作,请考虑哪些模块可能正在设置自己的跟踪功能。