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

arb*_*ter 21 python pycharm flask

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

ian*_*las 28

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.

  • 这是一个旧帖子,但对某些人仍然有帮助。如果在调试过程中,进程突然重新启动,那是因为 gunicorn worker 超时。您可以将其设置得更高以获得更长的调试时间,在脚本参数中使用 `--timeout INT`。 (5认同)
  • CE 的 3.4 版在@arbyter 提到的其他两个选项旁边有“Gevent 兼容调试”。 (3认同)

Phi*_*ipp 7

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

PYDEVD_USE_CYTHON=NO
Run Code Online (Sandbox Code Playgroud)


小智 6

我对PyCharm 2018.1.3 Professional的案例:

  1. 转到运行/调试配置, 创建和编辑运行调试配置

  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. 要开心!