每次我使用交互式控制台运行python
或python3
时,提示的显示几乎在第一次或第二次交互后几乎立即失去同步:
>>> [1,2,3]
>>> [1, 2, 3]
print('hi')
>>> hi
然后,当我退出python时,此行为会延续到bash
,此外,当您键入时,屏幕上不会显示任何内容,但它仍然会运行。在以下示例中,我输入了date
,然后输入了history | tail -n3
:
$ Thu Oct 8 07:55:47 CEST 2015
$ 488 python
489 date
490 history | tail -n3
然而,在输入reset
后,一切都恢复正常。
毋庸置疑,这种行为非常烦人。原因是什么,我该如何解决?
我在OS X上。使用iTerm或内置的Terminal.app都会产生相同的行为。我的python构建来自macports
。 /usr/bin/python
(OS X中包含的python 2.7.2)不存在此问题。
============================
编辑:如果我使用zsh
,那么python仍有问题,但在退出python之后,zsh
中的一切正常。
$TERM
xterm-256color
和bash
zsh
为private boolean is_active_keyboard() {
InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText())
return true;
else
return false;
}
。
答案 0 :(得分:1)
@Mark有解释。
关于修复:
port selfupdate
# port install python(26|27|34|35) +readline
port install python27 +readline
答案 1 :(得分:0)
在shell中尝试命令stty sane
。
它总是帮助我。
答案 2 :(得分:0)
正如我在AskDifferent中的回答一样,由于这个问题是由Macports bug编写的,因此在Macports下最近的python版本中存在一个错误,因为它不包括readline(出于许可证原因)
现在已通过制作+ readline变体并将其设为默认
来解决此问题