>>> import os
>>> ^[[A
最后一个字符来自于箭头向上。或者,使用箭头向左:
>>> impor^[[D
我该如何修复这个问题?
在常规的Bash中,箭头键工作正常。只有在交互式Python(或Perl等)shell中才会出现奇怪的行为。
>>> import os
>>> ^[[A
最后一个字符来自于箭头向上。或者,使用箭头向左:
>>> impor^[[D
我该如何修复这个问题?
在常规的Bash中,箭头键工作正常。只有在交互式Python(或Perl等)shell中才会出现奇怪的行为。
我通过安装readline
软件包解决了这个问题:
pip install readline
libncurses-dev
,然后readline才能正确安装。 - Amir Eldorncurses-devel
,然后顺利安装了 readline
。交互式 shell 现在可以正常使用了。 - one.timepip install readline
进行安装,即使我已经成功执行了brew install readline
,每次都会失败。 - user5359531gnureadline
,请参见 https://dev59.com/AFgQ5IYBdhLWcg3wRR9j。 - The Guy with The Hatreadline
,使用命令sudo pip3 install readline
,但是当我在Python命令提示符下输入一个命令时,Python崩溃了。我不得不卸载readline
并安装gnureadline
代替。现在一切都很顺利…赞同你的建议! - GeertVc在 OS X 上,我遇到了不同的问题。
当我使用系统 python shell 时,键盘输入没有问题,但在虚拟环境中存在问题。我尝试重新安装/升级 virtualenv/readline ,但都没有解决问题。
当我尝试在有问题的 python shell 中导入 readline 时,会得到以下错误消息:
ImportError: No module named readline
ImportError: dlopen(/Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /Users/raptor/.virtualenvs/bottle/lib/python2.7/lib-dynload/readline.so
Reason: image not found
因为存在 /usr/local/opt/readline/lib/libreadline.7.dylib
但不存在 libreadline.6.dylib
,所以我建立了一个符号链接:
因为存在/usr/local/opt/readline/lib/libreadline.7.dylib但不存在libreadline.6.dylib,所以我建立了一个符号链接:
ln -s libreadline.7.dylib libreadline.6.dylib
问题已经解决了!
brew update && brew upgrade
。目前还不清楚这个操作是否会影响PHP。 - Adam Barnesln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
修复了扫描代码的问题,但无法恢复历史命令回忆。虽然在这种情况下,半个修复总比没有要好。(是的,我也添加了一个6的链接,但没有任何区别)。
补充说明:这只是对于我使用的Python2存在的问题。我的Python3没有问题,不需要使用链接。 - Zim在OS X上,Xcode更新有时会破坏readline
。解决方案:
brew uninstall readline
brew upgrade python3
brew install readline
pip3 install readline
如果问题仍然存在,请尝试使用pip
删除readline
,并使用easy_install
进行安装:
pip3 uninstall readline
easy_install readline
easy_install
选项。 - Max Malysheasy_install
没有问题,但使用 pip 就不行。 - justhalfbrew link readline
结合使用(即使它已经被链接了)对我来说解决了问题。 - Richard Rast在OS X上,使用Python 3.5和virtualenv。
$ pip install gnureadline
在解释器中执行以下操作:import gnureadline
现在箭头键应该可以正常工作了。
附加信息...
请注意,自2015年10月1日起 - readline已被弃用(来源:https://github.com/ludwigschwardt/python-readline)
请改用gnureadline(参见:https://github.com/ludwigschwardt/python-gnureadline)
如果我在Python 3.5中安装readline而不是gnureadline,那么在尝试在解释器中导入后会收到错误:
>>> import readline
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/pi/tmp/python-readline-test/.venv/lib/python3.5/readline.so, 2): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib
Referenced from: /Users/pi/tmp/python-readline-test/.venv/lib/python3.5/readline.so
Reason: image not found
import gnureadline
,这真的很烦人。有没有一种方法可以在每个交互式会话开始时启动它? - Anton Codesimport gnureadline
)。有关其他可能的想法,请参见:run python command line interpreter with imports loaded automatically。 - user12345看起来 readline 没有启用。检查是否定义了 PYTHONSTARTUP
变量,对我来说,它指向 /etc/pythonstart
,并且在进入交互模式之前,Python 进程会执行该文件,从而设置 readline/history 处理。
感谢 @chown 提供的文档: http://docs.python.org/2/tutorial/interactive.html
PYTHONSTARTUP
,而不是 PYTHONSTART
。不确定与发行版相关的 /etc/pythonstart
文件。 - Ned Deily/etc/pythonstart
文件的脚本内容吗?这样我们就可以看到它是如何设置readline和history的。 - chownbrew reinstall python3
即可重装Python3。 - Ranhiru Jude Cooray我最近遇到了这个问题,经过大量阅读关于pip install readline
(无法在Mac OSX上使用)和pip install gnureadline
并不满意之后,现在我的设置可以使箭头键在任何Python控制台中使用:
pip install gnureadline
安装gnureadline。现在您可以执行import gnureadline
,箭头键应该按预期工作。要使它们自动工作,请按照以下步骤执行:
~/.startup.py
:import gnureadline
~/.bash_profile
:export PYTHONSTARTUP=~/.startup.py
有一件事不起作用,但是在我以前的设置中起作用的是:pdb.set_trace()
上的gnureadline的自动导入。 如果有人有解决此问题的好方法,我将感激您的评论。
我在Ubuntu 16.04 LTS上使用Python 3.6.x时,遇到了shell历史记录(tab/arrows命令)的问题。
我是从源代码安装的Python 3.6.x。
像user12345建议的那样,通过以下命令行安装"gnureadline"模块解决了我的问题:
sudo pip3.6 install gnureadline
:)
import gnureadline
以使其正常工作。 - David Schumann这是我在Ubuntu 12.04和Python 3.3上成功的步骤:
1)打开终端并输入sudo apt-get install libreadline-dev
2)从http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz下载Python 3.3.2源文件
3)在shell中提取并导航至Python-3.3.2/目录
4)执行以下命令:
./configure
make
make test
sudo make install
我在升级到High Sierra之后受到了影响,但我成功地解决了这个问题:
brew unlink python
xcode-select --install
brew install python