Python调试器(pdb)停止向上/向下箭头,显示^ [[而不是

Ror*_*ory 30 python keyboard readline pdb

我在Ubuntu Linux 11.04(natty)机器上的virtualenv中使用python 2.6.我在我的(django)python代码中有这个代码:

import pdb ; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)

为了启动python调试器(pdb).

直到今天,这个工作正常.但是现在当pdb启动时,它适用于调试,运行和断点等,但是当我按下up arrow显示上一个命令时,它打印^[[A而不是上升.当我输入内容并按下时Home,它会打印^[OH而不是移动光标.

我可以用完/ home/etc.在bash终端启动我的python django unittests(有pdb调用)很好.

这是怎么回事?我该如何修复我的pdb?我的readline有什么问题?

Tom*_*ski 17

从某种原因看起来你错过了readline包.只需通过键入安装它pip install readline,它应该按预期运行.如果您不在venv中,请记得以超级​​用户身份键入.

  • 似乎[_readline_](https://pypi.python.org/pypi/readline)软件包已被弃用。它已重命名为[_gnureadline_](https://pypi.python.org/pypi/gnureadline),以解决与标准库模块的名称冲突。 (5认同)
  • 当前最新版本的readline(6.2.4.1)已损坏;由于 C 代码无效,pip install 失败。安装 gnureadline 不会产生任何影响。 (3认同)
  • 对我不起作用。 (3认同)

小智 12

我发现使用以下命令输出到控制台和文件时存在此问题python file.py 2>&1 | tee output.txt

如何使用脚本将标准输出重定向到文件和控制台?

删除后2>&1 | tee output.txt,此问题(^[[Apdb 中的向上箭头变为)消失。

  • 谢谢。万万没想到会出现这样的问题。 (2认同)

小智 1

请参阅Python 交互模式历史记录和箭头键。就我而言,阿马丹的回答有效;我已经有了 readline 模块。