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

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

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

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

>>> impor^[[D

我该如何解决这个问题?

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


当前回答

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

pip install readline

其他回答

在CentOS上,我通过

Yum安装readline-devel

然后重新编译python 3.4。

在OpenSUSE上,我通过

pip3 install readline

下面是瓦莱里奥·克里尼的回答。

也许“pip3 install readline”是一个通用的解决方案。还没试过我的CentOS。

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

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

我最近遇到了这个问题,在阅读了很多关于pip安装readline(不适用于mac osx)和pip安装gnureadline后,不满意,这是现在我的设置,允许在任何python控制台使用方向键:

使用PIP Install gnureadline安装gnureadline

现在你可以导入gnureadline和方向键。要让它们自动工作,请遵循以下步骤:

创建(或追加)文件~/.startup.py: import gnureadline 追加到文件~/。bash_profile: export PYTHONSTARTUP=~/.startup.py


有一件事不工作,但在我前面的设置是:自动导入gnureadline在pdb.set_trace()。如果有人对这个问题有一个很好的解决方案,我会很感激的评论。

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

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

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

sudo pip3.6 install gnureadline

:)

在Mac升级到High Sierra后受到影响,这成功地解决了我的问题:

brew unlink python
xcode-select --install
brew install python