Python 2.7中没有Readline支持

时间:2017-02-14 00:37:21

标签: python python-2.7 readline

我在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 installconda install)。

如何解决此错误?如果不是要问的话,一个不需要我从pip切换到conda的解决方案将是理想的,因为我正在进入一台机器,我没有完全的控制权,并且想做的就像可以使用我已经拥有或可以轻松安装的工具。

1 个答案:

答案 0 :(得分:2)

我能够通过配置python来在启动时导入gnureadline包来解决这个问题(尽管有点笨拙):

  1. 创建一个运行pythonstartup.py
  2. 的脚本import gnureadline
  3. 修改~/.bashrc以导出环境变量PYTHONSTARTUP='pythonstartup.py'
  4. PYTHONSTARTUP上的Documentation

    import gnureadline放在我的.pdbrc文件中也使修复工作也适用于pdb会话。出于某种原因,在使用python -i从命令行运行脚本后进入交互式会话时,它仍然无法正常工作。