6 个答案:
答案 0 :(得分:19)
我将从简短的回答开始:不,你想要的任何版本的PyCharm都不能用到4.0.1。
问题在于,当您使用重新加载器时,Flask应用程序在子进程中运行,因此PyCharm调试器附加到主进程并且无法控制子进程。
在我看来,解决这个问题的最佳方法是让Jetbrains在他们的IDE中构建一个“重启更新”功能。然后你根本不需要使用Werkzeug的重新加载器,你可以直接从PyCharm获得相同的功能。
在Jetbrains决定实施此功能之前,我可以分享我的解决方法,这并不是非常糟糕。
在“编辑配置”中,将要使用的配置设置为“仅限单一实例”(对话框右上角的复选框)
确保配置是活动配置。
将Flask应用配置为不使用Werkzeug重新加载器。
按Ctrl-D开始调试(在Mac上,其他人可能有不同的快捷方式)
断点应该可以正常工作,因为重新加载器不活动。
进行所需的任何代码更改。
准备好重新启动时,再次按Ctrl-D。第一次执行此操作时,您将收到确认提示,例如“停止并重新启动?”。说是,并选中“不再显示”复选框。
现在,您可以在需要时按Ctrl-D快速重启调试器。
我同意这不完美,但一旦Ctrl-D进入你的肌肉记忆,你甚至都不会想到它。
祝你好运!
答案 1 :(得分:1)
问题是因为使用use_reloader=True werkzeug应用程序是在主应用程序的单独(子)线程中启动而PyCharm无法正确处理断点,因为它们在线程启