Python 如何使用pycharm 2.x调试flask.app,该';它在gunicorn上运行
我正在开发一个flask.app,它使用web套接字功能,并已安装以提供该功能。所以flask socket开发人员推荐它作为web服务器。我现在的问题是如何将pycharm的remove调试器与gunicorn连接,以拦截带有断点的执行。Python 如何使用pycharm 2.x调试flask.app,该';它在gunicorn上运行,python,flask,pycharm,Python,Flask,Pycharm,我正在开发一个flask.app,它使用web套接字功能,并已安装以提供该功能。所以flask socket开发人员推荐它作为web服务器。我现在的问题是如何将pycharm的remove调试器与gunicorn连接,以拦截带有断点的执行。Settings>Project Settings>Python调试器 其中有一个选项可以启用“gevent兼容调试” 然后,进入调试器设置(快捷方式是通过工具栏,单击“播放/调试”图标附近的下拉列表,然后选择“编辑配置” 将“脚本”设置为您的VirtualN
Settings>Project Settings>Python调试器
其中有一个选项可以启用“gevent兼容调试”
然后,进入调试器设置(快捷方式是通过工具栏,单击“播放/调试”图标附近的下拉列表,然后选择“编辑配置”
将“脚本”设置为您的VirtualNV的gunicorn安装,类似于:
/Users/iandouglas/.virtualenvs/defaultenv/bin/gunicorn
将“脚本参数”设置为
-b 192.168.1.1:9000 app:yourappname
(假设您的主启动脚本名为app.py,您将其称为“yourappname”
“工作目录”将自动设置,否则将其设置为代码所在的位置:/Users/iandouglas/PycharmProjects/MyExampleApp
我的gunicorn设置有一个单独的配置文件,它指定了一个主机/端口,但我仍然必须指定-b0.0.0:5001
参数,以强制gunicorn绑定到我机器上端口5001上的所有IP
p、 美国
一个重要的步骤是如前所述添加此envvar
- 编辑您的python文件
- 删除调试选项设置
我的PyCharm 2018.1.3专业案例:
-b:5001--访问日志文件---错误日志文件-“运行:创建应用程序()”
我试图在Pycharm 2020.2.1上进行调试,但即使启用了Gevent兼容调试,断点也无法正常工作。结果证明,我必须通过设置环境变量来禁用Cython以进行运行配置,如前所述
PYDEVD_USE_CYTHON=NO
在PyCharm 2.7.3中,在
Settings>Project Settings>Python Debugger
下只有两个选项:“调试时自动附加到子流程”和“收集运行时类型信息以获取代码洞察”。您是否安装了其他插件?不,我一直使用“gevent兼容调试”在我的编辑器中,v2和v3都是。我确实使用专业版……也许他们没有将其包含在免费社区版中。CE的3.4版在提到的其他两个选项@arbyter旁边有Gevent compatible debugging
。这是一篇老文章,但对某些人仍然有用。如果在调试时,该过程突然重新启动,这是因为gunicorn worker timeout。您可以将其设置得更高以获得更长的调试时间,对脚本参数使用--timeout INT
。这在最近的版本中似乎不起作用。在我的情况下,执行不会在断点处停止您是我的救世主@Philipp!
$ 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)
PYDEVD_USE_CYTHON=NO