首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pycharm和flask自动重新加载和断点不工作

pycharm和flask自动重新加载和断点不工作
EN

Stack Overflow用户
提问于 2014-11-23 17:12:06
回答 7查看 12.3K关注 0票数 26

我使用Pycharm 4,flask为0.10.1,python为3.4

当我从pycharm内部运行一个flask应用程序时,如果我用:

代码语言:javascript
运行
复制
app.run(debug=True)

我的断点被忽略了。在谷歌搜索之后,我发现为了让PyCharm在断点处停止,我应该用以下命令运行flask:

代码语言:javascript
运行
复制
app.run(debug=True, use_reloader=False)

现在PyCharm可以正确地在断点处停止,但我错过了自动重新加载功能。

有没有办法让两者协同工作?

使用python2.7,这两件事都能正常工作

我向PyCharm报告了这一点:https://youtrack.jetbrains.com/issue/PY-13976

EN

回答 7

Stack Overflow用户

发布于 2014-12-04 11:16:29

我将从简短的答案开始:不,您想要的东西不能在任何4.0.1之前的PyCharm版本中完成。

问题是,当您使用重载程序时,Flask应用程序在子进程中运行,因此PyCharm调试器附加到主进程,无法控制该子进程。

在我看来,解决这个问题的最好方法是让Jetbrains在他们的IDE中构建一个“更改时重启”功能。然后你根本不需要使用Werkzeug的重载器,你可以直接从PyCharm获得相同的功能。

在Jetbrains决定实现它之前,我可以分享我的解决方法,这并不是很糟糕。

  • 在“编辑配置”中,将你要使用的配置设置为“仅单实例”(对话框右上角的复选框)
  • 确保该配置是活动的。
  • 将你的Flask应用程序配置为不使用Werkzeug reloader。
  • 按Ctrl-D开始调试(在Mac上,其他人可能有不同的shortcut)
  • Breakpoints应该可以正常工作,因为重新加载程序未处于活动状态。

可以根据需要更改代码。

  • 当您准备好重新启动时,请再次按Ctrl-D。)第一次执行此操作时,您将得到确认提示,类似于“停止并重新启动?”。说“是”,然后勾选“不再显示”checkbox.
  • Now你可以在需要的时候按Ctrl-D快速重启调试器。

我承认它并不完美,但一旦Ctrl-D进入你的肌肉记忆中,你甚至不会去想它。

祝好运!

票数 25
EN

Stack Overflow用户

发布于 2018-06-02 17:57:46

我发现在PyCharm 2018.1.2中,在run configuration中有FLASK_DEBUG复选框:

在进行了一些更改之后,保存文件会触发重新加载操作。

票数 7
EN

Stack Overflow用户

发布于 2019-01-11 06:41:18

在我的设置中,我通过运行一个设置了一些配置并调用app.run()main.py文件来调试flask应用程序。我的python解释器设置在Docker容器中。

我的问题是我需要检查Run with Python console

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27087315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档