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

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

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

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

>>> impor^[[D

我该如何解决这个问题?

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


当前回答

您尝试过使用不同的SSH客户机吗?一些SSH客户端为不同的远程进程提供了特殊的内置密钥映射。我在使用emacs时经常遇到这种情况。

您使用的是什么客户端?我建议使用Putty和SecureCRT来比较它们的行为。

其他回答

您可以通过以下命令从“sh”切换到“bash”

$ /sh/bash

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

pip install readline

在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

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

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

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

sudo pip3.6 install gnureadline

:)

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

brew reinstall readline