将Mac OS升级到Sierra后,箭头键不再在Python shell中工作

将Mac OS升级到Sierra后,箭头键不再在Python shell中工作,python,macos,zsh,iterm2,pyenv,Python,Macos,Zsh,Iterm2,Pyenv,我正在使用zsh、iTerm2(3.0.9)和pyenv(1.0.2),pyenv全局设置为3.5.2 在pythonshell中,上下箭头键用于访问历史记录中以前的命令。但现在升级到OSX 10.12后,它会显示控制字符。例如,向上箭头显示: ^[[A 我已尝试按照中的建议安装readline,但没有任何帮助。我没有PYTHONSTARTUP变量,但以前没有,也不知道它如何与pyenv交互。我看到了同样的情况,我唯一能想到的“修复”是在.zshrc文件中不运行pyenv init-命令。但是

我正在使用zsh、iTerm2(3.0.9)和pyenv(1.0.2),pyenv全局设置为3.5.2

在pythonshell中,上下箭头键用于访问历史记录中以前的命令。但现在升级到OSX 10.12后,它会显示控制字符。例如,向上箭头显示:

^[[A

我已尝试按照中的建议安装readline,但没有任何帮助。我没有PYTHONSTARTUP变量,但以前没有,也不知道它如何与pyenv交互。

我看到了同样的情况,我唯一能想到的“修复”是在.zshrc文件中不运行
pyenv init-
命令。但是,这将抑制虚拟环境的功能。。因此,这不是一个修复,而是一个让pythonshell历史再次工作的变通方法


我正在继续寻找,看看是否有一个永久的解决办法,因为没有它,我几乎没有那么多的生产力

我遇到了完全相同的问题,这个命令对我有效
easy\u install-a readline


这里的全部功劳:

我通过从自制软件安装python解决了这个问题:

brew unlink python
brew install python
这对我很有用:

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

来源:

需要配置python的快捷方式

在shell中,运行
idle3
,然后更新密钥短路:


解决这个问题的方法是运行jsphpl(取消链接并安装)提到的步骤,然后另外使用brew再次链接python并允许覆盖冲突文件。

在使用brew安装的python时,升级XCode或XCode工具(通常在操作系统升级时发生)可能会发生这种情况

在这种情况下,您只需重新安装:

brew reinstall python
如果您需要python 2,请记住brew现在默认为python 3,因此您需要:

brew reinstall python2

这对Python3.5.2进行了修复,但是使用pyenv切换到Python2.7.12,该shell中的箭头键仍然不起作用。谢谢!我的评论就埋在那里,这个Q的标题是bang on,所以我想我应该注意到,
easy_install-a readline
修复了我的全局python,但我需要重新创建我的virtualenv来修复其中的问题。这并没有为我修复Python3。通过pyenv修复了我的Python3.8.1。只需执行以下操作:
pip install readline
。尝试上述关于安装readline的修复程序后,我可以确认它适用于我的python 2.7.8环境。谢谢我也解决了这个问题。这对我也很有效,但我还需要运行
brew链接——覆盖python
我也遇到过同样的情况,但我使用的是内置的bash,终端,没有环境,没有升级操作系统,仍然发生了。这还不够详细,无法给出答案。您能否进一步解释一下如何“再次使用brew链接python并允许重写冲突文件”?这个答案(和链接)只影响空闲解释器访问的shell,而不影响命令行bash/zsh/etc shell。