Fra*_*ank 175 python ssh shell arrow-keys
在像交互式python shell这样的shell中,你通常可以使用箭头键在当前行中移动或获取以前的命令(使用向上箭头)等.
但是在我进入另一台机器并从python那里开始之后,我会得到以下会话:
>>> import os
>>> ^[[A
Run Code Online (Sandbox Code Playgroud)
最后一个角色来自向上箭头.或者,使用左箭头:
>>> impor^[[D
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
在常规bash中,箭头键工作正常.奇怪的行为只是在交互式python(或perl等)shell中.
Val*_*ini 94
我通过安装readline包解决了这个问题:
pip install readline
Run Code Online (Sandbox Code Playgroud)
rap*_*.zh 75
在OS X上,我有不同的问题.
当我使用系统python shell时,键没有问题,但在virtualenv中存在问题.我尝试重新安装/升级virtualenv/readline并没有修复.
当我尝试import readline在问题python shell中时,收到此错误消息:
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
Run Code Online (Sandbox Code Playgroud)
因为有/usr/local/opt/readline/lib/libreadline.7.dylib但不是libreadline.6.dylib,所以我做了一个符号链接:
ln -s libreadline.7.dylib libreadline.6.dylib
Run Code Online (Sandbox Code Playgroud)
问题已经解决了!
Max*_*ysh 47
在OS X上,Xcode更新有时会中断readline.解:
brew uninstall readline
brew upgrade python3
brew install readline
pip3 install readline
Run Code Online (Sandbox Code Playgroud)
如果问题仍然存在,请尝试删除readline使用pip并使用easy_install以下命令安装:
pip3 uninstall readline
easy_install readline
Run Code Online (Sandbox Code Playgroud)
use*_*345 26
在OS X上,使用python 3.5和virtualenv
$ pip install gnureadline
Run Code Online (Sandbox Code Playgroud)
在翻译中做:
import gnureadline
Run Code Online (Sandbox Code Playgroud)
现在箭头键应该正常工作.
附加信息...
请注意,截至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
Run Code Online (Sandbox Code Playgroud)
Eri*_*ang 15
Dav*_*han 14
我最近遇到了这个问题,在阅读了很多有关pip install readline(不适用于mac osx)并且pip install gnureadline不满意之后,现在这是我的设置,可以在任何python控制台中使用箭头键:
pip install gnureadline现在您可以执行操作,import gnureadline并且箭头键应该可以正常工作。要使它们自动工作,请执行以下步骤:
~/.startup.py:import gnureadline~/.bash_profile:export PYTHONSTARTUP=~/.startup.py在我之前的设置中没有起作用的一件事是:在上自动导入gnureadline pdb.set_trace()。如果有人对这个问题有一个好的解决方案,我将不胜感激。
小智 11
以下是在ubuntu 12.04 for python 3.3中为我工作的步骤.
1)打开teminal并写 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
Run Code Online (Sandbox Code Playgroud)
小智 11
我在Ubuntu 16.04 LTS上遇到Python 3.6.x的shell历史(tab/arrows命令)问题.
Python 3.6.x是从源代码安装的.
为我解决的是使用此命令行安装user12345所述的模块"gnureadline":
sudo pip3.6 install gnureadline
Run Code Online (Sandbox Code Playgroud)
:)
小智 7
将Mac升级到High Sierra后受到影响,这成功解决了我:
brew unlink python
xcode-select --install
brew install python
Run Code Online (Sandbox Code Playgroud)
小智 6
readline 模块已被弃用,这将在最新的 python 版本中在 python shell 中执行 quit() 或 exit() 时导致无效指针错误。
pip install gnureadline反而
在CentOS上,我通过
yum install readline-devel
然后重新编译python 3.4。
在OpenSUSE上,我通过
pip3 install readline
Run Code Online (Sandbox Code Playgroud)
按照Valerio Crini的回答。
也许“ pip3 install readline”是一个通用解决方案。尚未在我的CentOS上尝试过。
如果您使用 Anaconda Python,则可以通过运行以下命令来修复此问题:
conda install readline
Run Code Online (Sandbox Code Playgroud)
为我工作!
| 归档时间: |
|
| 查看次数: |
59232 次 |
| 最近记录: |