100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ipython安装成功后用不了_Python常用工具ipython安装与使用

ipython安装成功后用不了_Python常用工具ipython安装与使用

时间:2023-02-17 08:18:08

相关推荐

ipython安装成功后用不了_Python常用工具ipython安装与使用

IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。

特别是代码补全功能非常实用。

安装ipython也非常简单,一台linux服务器上可以安装多个Python版本,根据Python版本安装对应的ipython;

例如:centos 6.3已经自带Python 2.6.6,这个时候可以自己编译安装Python2.7或者更高版本,每次调用输入绝对路径即可。

安装了Python2.7后,下载ipython安装包,目前最新的是ipython-3.0.0.tar.gz,解压后进入目录开始安装:

/usr/local/python27/bin/python2.7 setup.py build

/usr/local/python27/bin/python2.7 setup.py install

ln -sv /usr/local/python27/bin/ipython /usr/bin/

安装后软链接到/usr/bin目录下,方便使用,这样安装后会出现一个问题,如下:

进入后没有高亮显示,也没有tab键补全功能,原因是因为上面的warning。

第一个可以忽略,不影响使用,解决方法:

yum install sqlite-devel -y

然后重新编译Python后应该就可以解决。

主要的是第二个warning,提示没有Readline无法加载进来,解决方法:

yum install readline-devel -y

然后再下载setuptools-16.0.tar.gz这个工具,安装到Python2.7目录下,安装方式与ipython安装方式相同,安装完成后就可以在Python目录bin中发现easy_install这个工具,直接:

/usr/local/python27/bin/easy_install readline

发现报错:

从字面意思理解是找不到这个文件,网上查了下,说是readline-devel路径不对造成的,要手动去安装,首先查看readline-devel安装在哪里:

网上是有libreadline.a、libhistory.a这2个文件的,但是我的系统上面没有显示这2个文件,于是直接find查找到这2个文件:

[root@localhost bin]# find / -name libreadline.a

/usr/local/lib/libreadline.a

按照网上的方法,下载readline-6.2.4.1.tar.gz,进入目录修改setup.py这个文件

将框框内的路径修改为find出的路径:/usr/local/lib/libreadline.a

然后安装:

/usr/local/python27/bin/python setup.py install

结果是仍然报错:

反复安装了多次readline-devel,仍然报上面的错误,网上的结果是也报错,但不是报这个错:

他这边这样处理以后安装成功了。

经过反复的研究,最终发现了根本不需要修改配置文件,也不用去找文件路径,也不用自己去下载readline-6.2.4.1.tar.gz手动去安装。

在执行/usr/local/python27/bin/easy_install readline发现报错后,直接安装patch:

yum -y install patch

然后再:

安装readline成功以后再进入ipython:

终于可以看到代码自动补完,自动缩进,高亮显示了。

总结下:

安装ipython需要安装的包:

yum -y install readline-devel sqlite-devel ncurses-devel patch

手动安装setuptools后,直接使用easy_install安装readline更方便快捷

/usr/local/python27/bin/easy_install readline

或者如下安装也可:

yum -y install readline-devel patch

pip install ipython

版权属于:

运维之道

转载时必须以链接形式注明原始出处及本声明。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。