使用python时/后输入的终端显示不同步? (临时修复=`重置')

时间:2015-10-08 06:05:47

标签: python macos bash macports xterm

每次我使用交互式控制台运行pythonpython3时,提示的显示几乎在第一次或第二次交互后几乎立即失去同步:

>>> [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中的一切正常。

{p> $TERM xterm-256colorbash zshprivate boolean is_active_keyboard() { InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isAcceptingText()) return true; else return false; }

3 个答案:

答案 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变体并将其设为默认

来解决此问题