Ipython没有可用的readline并且pip install readline错误

Posted

技术标签:

【中文标题】Ipython没有可用的readline并且pip install readline错误【英文标题】:Ipython no readline available and pip install readline error 【发布时间】:2011-10-01 03:18:27 【问题描述】:

我安装了 ipython,但它没有 readline 选项。我首先下载了 gnu readline 并编译安装。不知道这是否是一个合适的解决方案,但这是我想到的第一件事。它仍然无法正常工作,并出现与以前相同的错误:

警告:此平台上不提供 Readline 服务。 警告:自动缩进功能需要 readline 库

然后我尝试使用 pip install readline 并收到以下错误。任何帮助将不胜感激:

运行安装 运行构建 运行 build_ext 构建“readline”扩展 创建构建 创建 build/temp.linux-x86_64-2.6 创建 build/temp.linux-x86_64-2.6/Modules 创建 build/temp.linux-x86_64-2.6/Modules/2.x GCC -pthread -fno严格走样-g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict的原型-fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I。 -I/home/jspender/include/python2.6 -c Modules/2.x/readline.c -o build/temp.linux-x86_64-2.6/Modules/2.x/readline.o -Wno-strict-prototypes 创建 build/lib.linux-x86_64-2.6 gcc -pthread -shared build/temp.linux-x86_64-2.6/Modules/2.x/readline.o readline/libreadline.a readline/libhistory.a -L/home/jspender/lib -lncurses -lpython2.6 -o build/lib.linux-x86_64-2.6/readline.so /usr/bin/ld: 找不到 -lncurses collect2: ld 返回 1 个退出状态 错误:命令“gcc”失败,退出状态为 1 -------------------------------------- 命令 /home/jspender/bin/python2.6 -c "import setuptools;__file__='/home/jspender/build/readline/setup.py';exec(compile(open(__file__).read().replace(') \r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-lBWIOm-record/install-record.txt 失败并出现错误代码 1 在 /home/jspender/.pip/pip.log 中存储完整的日志

【问题讨论】:

如果你在 Linux 上,你不需要编译它,你的发行版本库应该有 readline。在 Ubuntu 上,它是 libreadline6 或 libreadline5。不过,它通常是默认安装的。 【参考方案1】:

我在安装 Ubuntu 14.04 时遇到了同样的问题,试图安装一些 python 库。我相信 iPython 需要 readline,这对我来说是失败的,直到我运行以下命令。

sudo apt-get install python-dev
sudo apt-get install libncurses5-dev
sudo pip install readline

【讨论】:

【参考方案2】:

tmaric 是对的。我在安装 iPython(Ubuntu 12.10,quantal,32 位)时遇到了同样的问题。我错过了 ncurses5 库的开发版本。试试:

sudo apt-get install libncurses5-dev

然后通过pip再次安装readline模块

pip install readline

【讨论】:

Ubuntu 应该已经预装了 readline。它对我有用。 是的,我不确定这是否与我使用 pythonbrew 和虚拟环境来安装 IPython 的事实有关。 Pythonbrew 可能就是它——如果你在编译 Python 时没有相关的头文件,它会跳过像 readline 支持这样的位。你可以在编译之前尝试sudo apt-get build-dep python 我机器上的咒语是$ sudo yum install ncurses-devel,后面跟着$ sudo pip install readline【参考方案3】:

您有一个链接器错误:库 ncurses 未安装,或者它已安装并且链接器正在搜索错误的目标文件。

您使用的是什么平台/操作系统?

如果您运行的是 Linux/Unix,请尝试:

locate libncurses

查看是否安装了库。如果您的系统上没有 libncurses*.o,so,so.[0-9].[0-9] 文件,只需安装库和 readline。如果有,请检查 readline 编译过程搜索的是哪一个,这可能是您只需要创建一个符号链接,正确命名库文件即可。

【讨论】:

以上是关于Ipython没有可用的readline并且pip install readline错误的主要内容,如果未能解决你的问题,请参考以下文章

如何升级到python3版本并且安装pip3及ipython3

如何在win7中安装ipython,并且设置环境变量

IPython Notebook 运行python Spark程序

Mac 安装pip , ipython

Ipython的pip安装文档

ipython的安装(linux)