在python sh中按箭头键时看到转义字符

2024-09-27 09:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在类似于交互式python shell的shell中,通常可以使用箭头键在当前行中移动,或获取以前的命令(向上箭头)等

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

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

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

>>> impor^[[D

我该怎么解决?

在常规的重击中,箭头键工作正常。奇怪的行为就在交互式python(或perl等)shell中。


Tags: import命令机器os箭头shell字符常规
3条回答

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

pip install readline

似乎没有启用readline。检查是否定义了PYTHONSTARTUP变量,对于我来说,它指向/etc/pythonstart,并且该文件在进入交互之前由python进程执行,这将设置readline/history处理。

多亏了@chown,这里有关于这个的文档:http://docs.python.org/2/tutorial/interactive.html

在OSX上,我有不同的问题。

当我使用系统python shell时,键不是问题,而是virtualenv中的问题。我会尝试重新安装/升级virtualenv/readline,但没有修复任何问题。

当我试图在有问题的python shell中import readline时,得到以下错误消息:

ImportError: dlopen(/Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so
Reason: image not found

因为存在/usr/local/opt/readline/lib/libreadline.7.dylib而不是libreadline.6.dylib,所以我创建了一个符号链接:

ln -s libreadline.7.dylib libreadline.6.dylib

问题解决了!

相关问题 更多 >

    热门问题