44

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

import pdb ; pdb.set_trace()

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

直到今天,这工作得很好。但是现在当 pdb 启动时,它可以用于调试和运行以及断点等,但是当我按下up arrow显示上一个命令时,它会打印^[[A而不是上不去。当我键入内容并按Home时,它会打印^[OH而不是移动光标。

我可以使用 up/home/etc。在启动我的 python django unittests(它有 pdb 调用)的 bash 终端中很好。

这是怎么回事?如何修复我的 pdb?我的阅读线有什么问题?

4

3 回答 3

20

看起来由于某种原因您缺少 readline 包。只需键入即可安装它pip install readline,它应该会按预期运行。如果您不在 venv 中,请记住以超级用户身份键入它。

于 2015-08-07T14:17:18.173 回答
15

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

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

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

于 2019-06-02T19:20:16.693 回答
2

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

于 2013-01-12T19:32:19.703 回答