【发布时间】:2017-07-02 03:22:48
【问题描述】:
我的 python 交互式会话中没有任何 readline 功能。箭头键只是在屏幕上移动光标或打印^[[A等。一些网络搜索导致我尝试手动导入readline包,但这导致以下错误:
>>> import readline
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在
导入错误:/opt/readline-6.3/lib/libreadline.so.6:未定义符号:PC
我认为这是一个特定于版本的问题,因为这不会发生在默认情况下我正在使用的机器上的 2.6 环境中(我在 virtualenv 中的 2.7.10 中工作 - 这是最据我所知,我可以在机器上加载最近的 python 2.7 版本)。顺便说一下,它运行的是 linux - CentOS 6.8。
看起来像others have had this problem in some form or another,但我不知道他们的解决方案是否过时(我是否需要具有since been deprecated 的 readline 包?)即使不是,我也不确定如何安装包的固定版本(我还不是很精通python,而且我还没有超出你的基本pip install或conda install)。
如何解决此错误?如果要求不高,一个不需要我从 pip 切换到 conda 的解决方案将是理想的,因为我正在进入一台我无法完全控制并且想做的机器可以使用我已经拥有或可以轻松安装的工具。
【问题讨论】:
-
我猜你进入的环境不支持
ncurses基于this comment from the github link in your question -
@downshift 我遵循了您链接的问题的最佳答案,实际上我没有 bash 变量 PYTHONSTARTUP ( /etc/pythonstart 也不存在于我的虚拟环境中或之外)。
ncurses问题是否可以轻松解决? -
@downshift wrt
ncurses,似乎机器确实有它:运行rpm -qa | grep ncurse给我ncurses-devel-5.7-4.20090207.el6.x86_64 ncurses-base-5.7-4.20090207.el6.x86_64 ncurses-libs-5.7-4.20090207.el6.x86_64 ncurses-5.7-4.20090207.el6.x86_64 -
这对
ncurses来说确实很有希望,但似乎readlinepython 包可能与CentOS 的包libreadline发生冲突。如果您在 virtualenv 中工作,请检查您是否确实在pip list的输出中的虚拟环境中安装了readline,如果是则pip uninstall它
标签: python python-2.7 readline