-->

Arrow keys no longer work in Python shell after up

2019-03-23 03:50发布

问题:

I'm using zsh, iTerm2 (3.0.9), and pyenv (1.0.2) with pyenv global set to 3.5.2.

In the Python shell, the up and down arrow keys used to work, to access the previous commands in the history. But now after upgrading to OSX 10.12, instead it shows control characters. For example up arrow displays:

^[[A

I've tried installing readline as suggested in Seeing escape characters when pressing the arrow keys in python shell but that didn't help. I don't have the PYTHONSTARTUP variable but didn't used to before, and not sure how that interacts with pyenv.

回答1:

I had the exact same issue and this command worked for me easy_install -a readline.

Full credit here: ipython complaining about readline



回答2:

I solved it by installing python from homebrew:

brew unlink python
brew install python


回答3:

I'm seeing the same thing and the only "fix" I was able to come up with was to not run the pyenv init - command in my .zshrc file. That however will inhibit the functioning of virtual environments.. and so it's not a fix but a workaround to get the python shell history to work again.

I'm continuing to look and see if there is a permanent fix as I'm not nearly as productive without it.



回答4:

This worked for me:

CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 2.7.11

Source: https://medium.com/@pimterry/setting-up-pyenv-on-os-x-with-homebrew-56c7541fd331#.urbdkrc9l



回答5:

Need to configure python's shortcuts.

In shell, run idle3, then update the key shortucts:

How to repeat last command in python interpreter shell?



回答6:

What solved it for me was running the steps mentioned by jsphpl (unlink and install) and then additionally using brew to link python again and allowing the overwrite of conflicting files.