Python 如何调试Tornado协同程序(asyncio)

Python 如何调试Tornado协同程序(asyncio),python,python-asyncio,pdb,ipdb,Python,Python Asyncio,Pdb,Ipdb,我试图调试一个Tornado协同程序,它在后台使用异步IO实现 作为调试器,我使用的是ipdb,因此在我的代码中插入了import-ipdb;ipdb.setTrace() 代码是: @coroutine def get(self, user_id, _user): user = yield self.create_user(user_id) import ipdb; ipdb.set_trace(); ... 问题是调试器在调试模式下返回的不是enter,而是ente

我试图调试一个Tornado协同程序,它在后台使用异步IO实现

作为调试器,我使用的是
ipdb
,因此在我的代码中插入了
import-ipdb;ipdb.setTrace()

代码是:

@coroutine
def get(self, user_id, _user):
    user = yield self.create_user(user_id)
    import ipdb; ipdb.set_trace();
    ...
问题是调试器在调试模式下返回的不是enter,而是enter

 File "/usr/lib/python3.6/asyncio/base_events.py", line 425, in run_forever
    raise RuntimeError('This event loop is already running')
知道怎么修吗?您是否使用其他方法调试异步IO进程


代码以
python main.py

的形式执行,我认为IPython将尝试运行它自己的事件循环,因为您已经运行了一个可能有问题的事件循环。我认为IPython将尝试运行它自己的事件循环,因为您已经运行了一个可能有问题的事件循环。