Ipython 无法使用 readline 和 pip 安装 readline 出错
我安装了ipython,但它没有readline这个选项。我首先下载了gnu readline,然后编译并安装了它。我不知道这是否是个正确的解决办法,但这是我想到的第一件事。结果还是不行,出现了和之前一样的错误:
WARNING: Readline services not available on this platform. WARNING: The auto-indent feature requires the readline library
然后我尝试用pip安装readline,但出现了下面的错误。希望能得到一些帮助:
running install running build running build_ext building 'readline' extension creating build creating build/temp.linux-x86_64-2.6 creating build/temp.linux-x86_64-2.6/Modules creating build/temp.linux-x86_64-2.6/Modules/2.x gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -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 creating 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: cannot find -lncurses collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 ---------------------------------------- Command /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 failed with error code 1 Storing complete log in /home/jspender/.pip/pip.log
3 个回答
2
我在使用Ubuntu 14.04的时候也遇到了同样的问题,想安装一些Python库。iPython好像需要一个叫readline的东西,但我一直安装不上,直到我运行了以下命令。
sudo apt-get install python-dev
sudo apt-get install libncurses5-dev
sudo pip install readline
3
你遇到了一个链接错误:库文件 ncurses 没有安装,或者它已经安装了,但链接器在找错的文件。
你使用的是什么平台/操作系统?
如果你在使用 Linux/Unix,可以试试:
locate libncurses
看看这个库是否已经安装。如果你的系统里没有 libncurses*.{o,so,so.[0-9].[0-9]} 这些文件,那就安装这个库,还有 readline。如果有这些文件,那就检查一下在编译 readline 的时候,它在找哪个文件,可能你只需要创建一个符号链接,把库文件命名正确就可以了。
75
tmaric说得对。我在安装iPython的时候也遇到了同样的问题(我用的是Ubuntu 12.10,quantal,32位)。我缺少了ncurses5库的开发版本。你可以试试:
sudo apt-get install libncurses5-dev
然后通过pip再次安装readline模块。
pip install readline