如何使用在gunicorn上运行的pycharm 2.x调试flask.app

时间:2013-12-22 18:58:50

标签: python flask pycharm

我正在开发一个使用Web套接字功能并安装flask-socket的flask.app来提供它。因此,flask-socket开发人员建议gunicorn作为Web服务器。我现在的问题是如何连接pycharm的remove调试器和gunicorn来拦截带断点的执行。

4 个答案:

答案 0 :(得分:24)

Settings > Project Settings > Python Debugger

有一个选项可以启用“gevent compatible debugging”。

然后,进入调试器设置(快捷方式是通过工具栏,单击播放/调试图标旁边的下拉菜单,然后选择“编辑配置”

将“脚本”设置为你的virtualenv's gunicorn的isntallation,如:

/Users/iandouglas/.virtualenvs/defaultenv/bin/gunicorn

将“脚本参数”设置为类似的内容 -b 192.168.1.1:9000 app:yourappname(假设您的主要起始脚本称为app.py,并且您将其称为'yourappname'

“工作目录”将自动设置,否则将其设置为代码所在的任何位置:/Users/iandouglas/PycharmProjects/MyExampleApp

我有一个单独的配置文件用于我的gunicorn设置,它指定了一个主机/端口,但我仍然需要指定-b 0.0.0.0:5001参数来强制gunicorn绑定到我的机器上端口5001上的所有IP。

答案 1 :(得分:3)

我试图在Pycharm 2020.2.1上进行调试,即使启用了Gevent兼容调试,断点也无法正常工作。事实证明,我必须通过按照here设置环境变量来使其运行配置禁用Cython,以使其起作用。

PYDEVD_USE_CYTHON=NO

答案 2 :(得分:2)

我的PyCharm 2018.1.3 Professional案例:

  1. 转到运行/调试配置 creating-and-editing-run-debug-configurations

  2. 选择新的“ Python”配置

  3. 脚本路径:your_path_to_ / venv / bin / gunicorn
  4. 参数(对于我而言):-b :5001 --access-logfile - --error-logfile - "run:create_application()"
  5. Python解释器:项目的venv python版本
  6. 工作目录:项目的路径
  7. 保存并按DEBUG(Shift + F9)
  8. 开心!

答案 3 :(得分:0)

  
      
  • 编辑你的烧瓶启动python文件
  •   
$ vim manage.py
  
      
  • 删除调试选项设置
  •   
from web import app
import sys

if __name__ == '__main__':
    # app.run(host='0.0.0.0', port=app.config["PORT"], debug=app.config["DEBUG"])
    app.run(host='0.0.0.0', port=9998, debug=False)