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

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

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

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

>>> impor^[[D

我该如何解决这个问题?

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


当前回答

安装readline-devel包。 使用readline模块重新编译python 宾果!

其他回答

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

以下是在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

在Unbuntu或Mint中, 如果您正在使用pyenv,

sudo apt install libreadline-dev
pyenv uninstall 3.8.8
pyenv install 3.8.8

一旦安装了libreadline-dev,你不需要在每个python版本上安装pip install gnureadline。

尝试在服务器上运行一个密钥代码库。如果这不起作用,尝试下载具有读键功能的库。

Readline模块已弃用,在最新的python版本中,当在python shell中执行quit()或exit()时,该模块将导致无效指针错误。 PIP安装gnureadline代替