python断点调试不起作用flask_pycharm和flask autoreload和断点不起作用

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无法正确处理断点,因为它们在线程启

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值