在像交互式python shell这样的shell中,你通常可以使用箭头键在当前行中移动,或者获得之前的命令(向上箭头)等。
但当我ssh到另一台机器并在那里启动python后,我得到了如下会话:
>>> import os
>>> ^[[A
最后一个字符来自箭头向上。或者,使用箭头向左:
>>> impor^[[D
我该如何解决这个问题?
在常规bash中,方向键工作正常。奇怪的行为只是在交互的python(或perl等)shell中。
在像交互式python shell这样的shell中,你通常可以使用箭头键在当前行中移动,或者获得之前的命令(向上箭头)等。
但当我ssh到另一台机器并在那里启动python后,我得到了如下会话:
>>> import os
>>> ^[[A
最后一个字符来自箭头向上。或者,使用箭头向左:
>>> impor^[[D
我该如何解决这个问题?
在常规bash中,方向键工作正常。奇怪的行为只是在交互的python(或perl等)shell中。
当前回答
我在Python 3.6的shell历史记录(tab/箭头命令)方面有问题。在Ubuntu 16.04 LTS上安装。
Python 3.6。X是从源代码安装的。
我解决的问题是安装模块“gnureadline”,如user12345所说,使用以下命令行:
sudo pip3.6 install gnureadline
:)
其他回答
看起来readline没有启用。检查是否定义了PYTHONSTARTUP变量,对我来说,它指向/etc/pythonstart,该文件在进行交互之前由python进程执行,这设置了readline/history处理。
感谢@chown,这里有这个文档:http://docs.python.org/2/tutorial/interactive.html
安装readline-devel包。 使用readline模块重新编译python 宾果!
在Unbuntu或Mint中, 如果您正在使用pyenv,
sudo apt install libreadline-dev
pyenv uninstall 3.8.8
pyenv install 3.8.8
一旦安装了libreadline-dev,你不需要在每个python版本上安装pip install gnureadline。
我在Python 3.6的shell历史记录(tab/箭头命令)方面有问题。在Ubuntu 16.04 LTS上安装。
Python 3.6。X是从源代码安装的。
我解决的问题是安装模块“gnureadline”,如user12345所说,使用以下命令行:
sudo pip3.6 install gnureadline
:)
在两个不同版本的Ubuntu上,这些答案都不适合我。对我有用的,但不是真正的修复,是将我的python代码包装在rlwrap调用中(在ubuntu存储库中可用):
Rlwrap python mycode.py