在像交互式python shell这样的shell中,你通常可以使用箭头键在当前行中移动,或者获得之前的命令(向上箭头)等。

但当我ssh到另一台机器并在那里启动python后,我得到了如下会话:

>>> import os 
>>> ^[[A    

最后一个字符来自箭头向上。或者,使用箭头向左:

>>> impor^[[D

我该如何解决这个问题?

在常规bash中,方向键工作正常。奇怪的行为只是在交互的python(或perl等)shell中。


当前回答

在OS X上,Xcode更新有时会破坏readline。解决方案:

brew uninstall readline
brew upgrade python3
brew install readline
pip3 install readline

如果问题仍然存在,尝试使用pip删除readline,并使用easy_install安装它:

pip3 uninstall readline
easy_install readline

其他回答

以下是在ubuntu 12.04的python 3.3中对我有效的步骤。

1)打开终端,输入sudo apt-get install libreadline-dev

2)从http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz下载python 3.3.2的源文件

3)解压它并导航到shell中的Python-3.3.2/目录

4)执行以下命令:

./configure
make
make test
sudo make install

我已经通过安装readline包解决了这个问题:

pip install readline

我在Python 3.6的shell历史记录(tab/箭头命令)方面有问题。在Ubuntu 16.04 LTS上安装。

Python 3.6。X是从源代码安装的。

我解决的问题是安装模块“gnureadline”,如user12345所说,使用以下命令行:

sudo pip3.6 install gnureadline

:)

你的env变量$TERM如何设置[a]当事情正常工作时[b]当他们不工作时?环境设置往往是解决这类问题的关键。

在MacOsx上,我通过重新安装readline来解决这个问题

brew reinstall readline