Every time that I run python
or python3
with an interactive console, the display of the prompt gets out of sync almost immediately after the first or second interaction:
>>> [1,2,3]
>>> [1, 2, 3]
print('hi')
>>> hi
Then, when I exit out of python, this behavior carries over to bash
, with the addition that when you type, nothing appears on the screen, but it will still run. In the following example, I typed date
and then history | tail -n3
:
$ Thu Oct 8 07:55:47 CEST 2015
$ 488 python
489 date
490 history | tail -n3
However, after typing reset
, everything goes back to normal.
Needless to say, this behavior is very annoying. What is the cause, and how can I fix it?
I am on OS X. Using iTerm or built-in Terminal.app both give the same behavior. My python builds are from macports
. This problem is not present with /usr/bin/python
(python 2.7.2, included with OS X).
============================
Edit: If I use zsh
, then python still has problems, but everything works fine in zsh
after I exit out of python.
$TERM
is xterm-256color
in both bash
and zsh
.
As in my answer in AskDifferent there was a bug in recent python builds under Macports when the question was written due to this Macports bug as it was not including readline (for license reasons)
This has now been fixed by making a +readline variant and making this the default