我正在开发一个使用Web套接字功能并安装flask-socket的flask.app来提供它。因此,flask-socket开发人员建议gunicorn作为Web服务器。我现在的问题是如何连接pycharm的remove调试器和gunicorn来拦截带断点的执行。
答案 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案例:
选择新的“ Python”配置
-b :5001 --access-logfile - --error-logfile - "run:create_application()"
答案 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)