我在python交互式会话中没有获得任何readline功能。箭头键只是在屏幕上移动光标或打印^[[A
等。一些网页搜索让我尝试手动导入readline
包,但这导致以下错误:
>>>导入readline
Traceback(最近一次调用最后一次):
文件“< stdin>”,第1行,< module>
ImportError:/opt/readline-6.3/lib/libreadline.so.6:undefined symbol:PC
我认为这是一个版本特定的问题,因为这不会出现在我正在处理的机器上的2.6环境中(我在2.7.10中的virtualenv工作 - 这是最多的最近的python 2.7版本我可以在机器上加载,据我所知)。顺便说一下,它正在运行Linux - CentOS 6.8。
好像是others have had this problem in some form or another,但我无法判断他们的解决方案是否已过时(我是否需要具有since been deprecated的readline包?)即使不是我也不是确定如何安装固定版本的软件包(我不是很狡猾,我没有超出你的基本pip install
或conda install
)。
如何解决此错误?如果不是要问的话,一个不需要我从pip切换到conda的解决方案将是理想的,因为我正在进入一台机器,我没有完全的控制权,并且想做的就像可以使用我已经拥有或可以轻松安装的工具。
答案 0 :(得分:2)
我能够通过配置python来在启动时导入gnureadline
包来解决这个问题(尽管有点笨拙):
pythonstartup.py
import gnureadline
~/.bashrc
以导出环境变量PYTHONSTARTUP='pythonstartup.py'
(PYTHONSTARTUP
上的Documentation)
将import gnureadline
放在我的.pdbrc
文件中也使修复工作也适用于pdb会话。出于某种原因,在使用python -i
从命令行运行脚本后进入交互式会话时,它仍然无法正常工作。