Python 3.x 使用uwsgi服务器上运行的Flask应用程序中的pdb时,bdb.bdbGuit将引发

Python 3.x 使用uwsgi服务器上运行的Flask应用程序中的pdb时,bdb.bdbGuit将引发,python-3.x,flask,uwsgi,gevent,Python 3.x,Flask,Uwsgi,Gevent,我正在我的项目中使用库。因为WebSocket需要和主Flask应用程序“并行运行”,所以我需要使用这个库。当我试图在create\u app方法中为调试器设置断点时,会出现此问题: 我的app.py文件: 导入前的猴子修补标准库 #其他模块 从gevent导入猴子 猴子 导入操作系统 导入logging.config 从烧瓶进口烧瓶 从dynaconf导入烧瓶dynaconf ... #其他进口 def配置应用程序(应用程序): ''' 配置应用程序设置。 ''' FlaskDynaconf(

我正在我的项目中使用库。因为WebSocket需要和主Flask应用程序“并行运行”,所以我需要使用这个库。当我试图在
create\u app
方法中为调试器设置断点时,会出现此问题:

我的
app.py
文件:

导入前的猴子修补标准库 #其他模块 从gevent导入猴子 猴子 导入操作系统 导入logging.config 从烧瓶进口烧瓶 从dynaconf导入烧瓶dynaconf ... #其他进口 def配置应用程序(应用程序): ''' 配置应用程序设置。 ''' FlaskDynaconf(应用程序) 进口pdb;pdb.set_trace() logging.config.fileConfig(app.config.logging\u设置) ... def create_应用程序(从_芹菜运行_=False): ''' 创建新的Flask应用程序实例。 ''' app=烧瓶('automoticz') 配置应用程序(应用程序) # ... 返回应用程序 当我启动服务器(我正在使用)时,我收到以下错误:

$uwsgi--http 0.0.0.0:5000\
--gevent 1000\
--http WebSocket\
--主人\
--wsgi文件automoticz/wsgi.py\
--可调用应用程序

gevent
下运行时,有没有办法使
pdb
正常工作?

在挖掘了一点之后,我意识到你不应该使用它

从gevent.pywsgi导入WSGIServer
application=WSGIServer((application.config.SERVER\u主机、application.config.SERVER\u端口)、application)
因为它不起作用。因此,您可以使用较旧的
wsgi.py
版本。现在问题出现了,因为当您使用
uwsgi
时,没有
stdin
,它被指向
/dev/null
。由于没有stdin,调试器无法启动。见下面的线程

因此,您需要在运行
uwsgi
时添加
--hounor stdin
--gevent

uwsgi--http 0.0.0.0:5000\
--gevent 10\
--http WebSocket\
--主人\
--wsgi文件automoticz/wsgi.py\
--荣誉标准
现在调试工作开始了


我希望您正在使用
gevent
中的
WSGIServer
<代码>从gevent.pywsgi导入WSGIServer?我可以将
gevent.pywsgi.WSGIServer
uwsgi
一起使用吗?是的,
wsgi
是一个标准,任何
wsgi
兼容的服务器都可以与
uwsgi
@TarunLalwani一起工作。好的,我让pdb与gevent一起使用WSGIServer,正如你所说的,但只有在使用
serve\u forever()
运行它时才有效。当传递可调用的cretated ad
server=WSGIServer(('0.0.0.0',5000),app)时
烧瓶app未加载到uwsgi中,并且我接收到
***未加载app。进入完全动态模式***
message请提供最少的git repo进行调试
Traceback (most recent call last):
  File "automoticz/wsgi.py", line 3, in <module>
    app = create_app()
  File "./automoticz/app.py", line 138, in create_app
    configure_app(app)
  File "./automoticz/app.py", line 28, in configure_app
    logging.config.fileConfig(app.config.LOGGING_SETTINGS)
  File "./automoticz/app.py", line 28, in configure_app
    logging.config.fileConfig(app.config.LOGGING_SETTINGS)
  File "/usr/lib/python3.5/bdb.py", line 48, in trace_dispatch
    return self.dispatch_line(frame)
  File "/usr/lib/python3.5/bdb.py", line 67, in dispatch_line
    if self.quitting: raise BdbQuit
bdb.BdbQuit
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 22694)
spawned uWSGI worker 1 (pid: 22702, cores: 1000)
spawned uWSGI http 1 (pid: 22703)
*** running gevent loop engine [addr:0x494fa0] ***