[英]Python interactive mode history and arrow keys
我想知道是否有人可以解释为什么突然在 Python 交互模式下所有箭头键都失效了?
例如,当我通过命令历史按下向上按钮到 go 时,我得到“^[[A”。 与任何其他箭头键相同。
我不知道为什么会发生这种情况,并且它之前可以正常工作(在 OS X Snow Leopard 上)。 有谁知道解决这个问题的方法?
非常感谢,
G
如果您使用的是自制软件,这是一个简单的解决方法:
brew uninstall python brew uninstall readline brew install readline --universal brew install python
为我修复它(运行OS X Mavericks 10.9.5)
我终于搞定了这个。 我只需要使用easy_install和游标安装readline,并且退格开始神奇地工作。
sudo /opt/local/bin/easy_install-2.5 readline
你没有说你正在使用哪种Python,但你提到的症状确实通常是由Python没有使用readline
支持构建的。 目前,OS X上的Python可以构建为使用GNU readline
库或Apple提供的editline
库(AKA libedit
)。 您可以使用以下两个命令来准确显示您正在使用的Python。 如果这无法帮助您弄清楚发生了什么,请编辑您的问题以显示这些命令的输出。
这是一个示例,显示OS X 10.6上最近的MacPorts Python 2.6:
$ python -c 'import sys;print(sys.version);print(sys.executable)'
2.6.5 (r265:79063, Jul 15 2010, 01:53:46)
[GCC 4.2.1 (Apple Inc. build 5659)]
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
$ otool -L $(python -c 'import readline; print(readline.__file__)')
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so:
/opt/local/lib/libreadline.6.1.dylib (compatibility version 6.0.0, current version 6.1.0)
/opt/local/lib/libncursesw.5.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
路径前缀/opt/local/
是MacPorts安装软件的默认位置, otool
的输出表示此Python的readline
模块动态链接到安装了MacPorts的GNU readline
库。
当您没有readline
支持时,通常会显示此行为。 如果您使用的是MacPorts,请尝试使用port install readline
,看看它是否会修复它。 您还可以查看此页面以获得进一步的解释。
(也很有用:一些程序即使存在于系统上也不使用readline
。你可以使用rlwrap
( port install rlwrap
)强制它。例如: rlwrap ocaml -init code.ml
将启动OCaml,读取code.ml,并启动REPL并支持readline)
命令
brew install readline
为我工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.