如何使用python';带ipdb调试器的s gevent.monkey.path_sys()?

如何使用python';带ipdb调试器的s gevent.monkey.path_sys()?,python,ipython,readline,gevent,ipdb,Python,Ipython,Readline,Gevent,Ipdb,我使用的是python的gevent库,在等待用户输入时不希望raw_input(或者更具体地说是cmd.cmd中的事件循环)被阻塞。因此,我使用gevent.monkey.patch_sys()来确保我的其他greenlet在等待用户输入时可以运行。除了它似乎与readline交互之外,它工作得非常好 例如,我在ipython的ipdb调试器中不再具有历史记录和自动完成,因为箭头键不再工作。这可以通过以下简单片段看到: from gevent import monkey monkey.patc

我使用的是python的gevent库,在等待用户输入时不希望
raw_input
(或者更具体地说是cmd.cmd中的事件循环)被阻塞。因此,我使用
gevent.monkey.patch_sys()
来确保我的其他greenlet在等待用户输入时可以运行。除了它似乎与
readline
交互之外,它工作得非常好

例如,我在ipython的ipdb调试器中不再具有历史记录和自动完成,因为箭头键不再工作。这可以通过以下简单片段看到:

from gevent import monkey
monkey.patch_sys()

import ipdb; ipdb.set_trace()
# now hit arrow keys at the prompt
我得到以下信息:

ipdb> ^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A
*** SyntaxError: invalid syntax (<stdin>, line 1)
ipdb>^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[A^[[A^[A^[A^[[A^]
***SyntaxError:无效语法(,第1行)
我将其追溯到我认为python的readline可能存在的问题,因为我知道ipython依赖于它

这似乎也是一种类似的情况:

但是在我的例子中,我想在调试器中特别使用自动完成和历史记录

我在iterm内的OSX上运行。这是特定于控制台设置的吗?还是修补程序中的某个东西从根本上破坏了
readline

关于如何解决这个问题有什么想法吗