Python 2.7不支持Readline

Emp*_*cer 5 python readline python-2.7

我的python交互式会话中没有任何readline功能。箭头键只是在屏幕上移动光标或打印^[[A等。一些网络搜索使我尝试手动导入readline程序包,但这导致以下错误:

>>>导入readline
Traceback(最近一次调用):
文件“ <stdin>”,在<module>
ImportError中的第1行:/opt/readline-6.3/lib/libreadline.so.6:未定义的符号:PC

我认为这是特定于版本的问题,因为在默认情况下,我正在使用的机器上的2.6环境中不会发生这种情况(我在virtualenv中的2.7.10中工作-这是最新的python 2.7据我所知,我可以在计算机上加载的版本)。顺便说一下,它正在运行linux-CentOS 6.8。

似乎其他人以某种形式存在此问题,但我无法确定他们的解决方案是否过时(我是否需要该版本起就不再使用的readline包?),即使不是,我也不是。确定如何安装该软件包的固定版本(我还不是非常精通python,并且除了basic pip install或之外,我没有什么其他的conda install)。

如何解决此错误?如果要求不高,那么不要求我从pip切换到conda的解决方案将是理想的,因为我要挤进一台我没有完全控制权的机器,并且愿意做很多事情使用我已经拥有或可以轻松安装的工具可以实现。

Emp*_*cer 5

我能够通过配置 pythongnureadline在启动时导入包来解决这个问题(尽管以一种有点hacky的方式):

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

文档PYTHONSTARTUP

import gnureadline我的.pdbrc文件所作的PDB会话修复工作过。但是,由于某种原因,在从命令行运行脚本后进入交互式会话时它仍然不起作用python -i