感谢支持
我们一直在努力

CentOS 5安装IPython

话说上次给那台装CentOS 5的免费VPS升级了Python,这次我们继续来安装IPython。
 
一.IPython是什么
 
IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPython会列出zlib模块下所有的属性、方法和类,如图一所示,绝对是居家旅行,杀人放火之必备神器啊。


 

图一:IPython代码自动补完
 
二.安装IPython
 
IPython的安装很简单,按照《升级CentOS的Python》 http://www.linuxidc.com/Linux/2014-04/100039.htm 安装好Python和setuptools之后,我们直接用setuptools提供的easy_install命令就能自动安装好所需要的模块。在远程终端中执行下列命令:
 easy_install install ipython
虽然现在IPython能用了,但由于缺少Python readline模块,它的代码自动补完,自动缩进,高亮显示这三个最有用的特性都不可用,如图二所示。

图二:缺少readline支持的IPython
 
看到它最上面的提示了吧:
 WARNING: IPython History requires SQLite, your history will not be saved
WARNING: Readline services not available or not loaded.WARNING: The auto-indent feature requires the readline
换句话说,IPython这丫的现在就等于是个废物。好吧,我们来解决readline的问题。至于它提示缺少的SQLite模块,本来是Python的内置模块,但是由于我们当初编译Python时没有安装sqlite-devel,所以Python现在不支持这个库,不过这这几乎不影响我们的使用。
 
三.安装readline
 
先来安装编译Python readline所需要的readline-devel,执行:
 yum install -y readline-devel

Tips:devel是Development的缩写。readline-devel包,包含了readline模块的申明和头文件等,给使用了readline模块的程序提供编译支持。前面提到的sqlite-devel、zlib-devel等,功能于此类同。
 
接着用easy_install安装Python的readline模块,执行:
 easy_install readline
结果报错,如图三所示。
 

图三:安装readline报错
 
可以看到,最后三行提示:
 gcc: readline/libreadline.a: No such file or directory
gcc: readline/libhistory.a: No such file or directory
error: Setup script exited with error: command ‘gcc’ failed with exit status 1

我们已经安装了readline-devel,却提示找不到libreadline.a和libhistory.a,应该是路径有问题。执行下面的命令查看系统把readline-devel安装到了那儿,结果如图四所示:


图四:readline-devel安装路径

可以看到,libreadline.a和libhistory.a被安装到了/usr/lib/路径下,难怪找不到了。

下面我们来手动安装Python readline模块,依次执行下面的命令:
wget http://pypi.python.org/packages/source/r/readline/readline-6.2.4.1.tar.gz
tar zxvf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1
然后找到setup.py文件中的这一段:
ext_modules=[
Extension(name=”readline”,
sources=[“Modules/%s.x/readline.c” % (sys.version_info[0],)],
include_dirs=[‘.’],
define_macros=DEFINE_MACROS,
extra_compile_args=[‘-Wno-strict-prototypes’] + UNIVERSAL.split(),
extra_link_args=UNIVERSAL.split(),
extra_objects=[‘readline/libreadline.a’, ‘readline/libhistory.a’],
libraries=[‘ncurses’]
),
],
将其中的:
extra_objects=[‘readline/libreadline.a’, ‘readline/libhistory.a’],
修改为:
extra_objects=[‘/usr/lib/libreadline.a’, ‘/usr/lib/libhistory.a’],
接着执行:
python setup.py install
结果继续报错,如图五所示。


图五:安装readline继续报错

这次提示的是:
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
error: command ‘gcc’ failed with exit status 1
汗,看样子今天还真是一波三折啊。百度了一下发现,原来是没有安装ncurses-devel。执行:
yum install -y ncurses-devel
接下来再次执行
python setup.py install
结果如图六所示,谢天谢地,终于安装成功了。


图六:Python readline安装成功

现在再来执行IPython,代码自动完成,自动缩进和高亮显示功能就全有了,如图七所示。和图二对比一下,是不是有了一种鸟枪换大炮的感觉啊。


图七:有readline支持的IPython

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

赞(0) 打赏
转载请注明出处:服务器评测 » CentOS 5安装IPython
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏