初窥Python(三)——python版本升级及ipython的安装使用

在使用 CentOS6.6 X64 系统时,由于系统自带的 python 版本为 2.6.6,而 2.x 版本中当前普遍使用的为2.7 版本,所以我们要对系统的 python 版本做一个升级。ipython 是一个增强版的shell,支持TAB补全,自动缩进等供能,比默认的 python shell 要好用很多。下面主要介绍如何升级 python 版本,安装 pip 并使用 pip install 安装 ipython,搭建一个简易的 python 环境。

1.官网下载安装包:

[[email protected] ~]# cd /usr/local/src
[[email protected] src]#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz

2.解压、编译、安装:

[[email protected] src]# tar zxf Python-2.7.10.tgz
[[email protected] src]# cd Python-2.7.10

这里需要注意,在编译安装之前,需要确保系统中已经安装了 openssl-devel,zlib-devel,readline-devel,sqlite-devel,原因会在文末阐述。

[ro[email protected] Python-2.7.10]# yum install -y openssl-devel zlib-devel readline-devel sqlite-devel
[[email protected] Python-2.7.10]# ./configure --prefix=/usr/local/python2.7.10
[[email protected] Python-2.7.10]# make && make install

3.修改当前python命令版本:

安装完成后,查看python版本:

[[email protected] ~]# python -V
Python 2.6.6

发现版本并没有改变,需要手动建立软链接:

[[email protected] ~]# rm -f /usr/bin/python

这里不必担心误删除,因为在 /usr/bin 目录下还有一个python2.6 命令:

[[email protected] ~]# python2.6 -V
Python 2.6.6

所以大胆 rm -f 即可。建立软链接:

[[email protected] ~]# ln -s /usr/local/python2.7.10/bin/python2.7 /usr/bin/python

现在再查看 python版本:

[[email protected] ~]# python -V
Python 2.7.10

升级版本后,还剩余一些扫尾工作。由于yum命令只支持使用 python2.6,为了防止 yum 命令失效,修改 /usr/bin/yum 命令:

[[email protected] ~]# vim /usr/bin/yum

将第一行的

#!/usr/bin/python

修改为

#!/usr/bin/python2.6

保存退出即可。

4.安装pip

pip 为 python 的包管理工具,类似于 CentOS 的 yum 和 Node.js 的 npm,相信接触过 python 的同学对 pip 都很熟悉。由于准备使用 pip 来安装 ipython,当前前提是要将 pip安装上啦。安装 pip 需要首先安装 setuptools(如下载链接失效,请移步https://pypi.python.org/pypi/setuptools自行下载):

[[email protected] src]# wget https://pypi.python.org/pypi?:action=show_md5&digest=f72e87f34fbf07f299f6cb46256a0b06
[[email protected] src]# tar zxf setuptools-18.1.tar.gz
[[email protected] src]# cd setuptools-18.1
[[email protected] setuptools-18.1]# python setup.py install

安装成功后如图-1所示。

图-1 setuptools安装成功

完成后,安装 pip(如下载链接失效,请移步https://pypi.python.org/pypi/pip自行下载):

[[email protected] src]# wget https://pypi.python.org/packages/source/p/pip/pip-7.1.0.tar.gz#md5=d935ee9146074b1d3f26c5f0acfd120e
[[email protected] src]# tar zxf pip-7.1.0.tar.gz
[[email protected] src]# cd pip-7.1.0
[[email protected] pip-7.1.0]# python setup.py install

安装成功后如图-2所示。

图-2 pip安装成功

安装完成后的 pip 文件位于 /usr/local/python2.7.10/bin/ 目录下,为了方便使用,为 pip 建立软链接:

[[email protected] ~]# ln -s /usr/local/python2.7.10/bin/pip /usr/bin/pip

5.安装 ipython

使用 pip 命令安装 ipython:

[[email protected] ~]# pip install ipython

安装成功后如图-3所示。

图-3 ipython安装成功

安装完成后的ipython 文件位于 /usr/local/python2.7.10/bin/ 目录下,为了方便使用,为 ipython 建立软链接:

[[email protected] ~]# ln -s /usr/local/python2.7.10/bin/ipython  /usr/bin/ipython
[[email protected] ~]# ipython

进入如下交互页面,如图-4所示,之后就可以使用 ipython 的 TAB 自动补全功能、自动缩进功能和类似 sorted?? 查看方法介绍的功能了。

图-4 开始使用ipython

补充:

最后说一下,如果在 make && make install Python2.7.10 时系统中如果没有安装 openssl-devel,zlib-devel,readline-devel,sqlite-devel 四个包会分别出现什么问题。

如果没有安装 zlib-devel,在安装 setuptools 时会报如图-5所示错误,即 RuntimeError: Compression requires the (missing) zlib module 错误:

图-5 缺少zlib-devel

如果没有安装 openssl-devel,在使用 pip install ipython 命令安装 ipython 时会报如图-6所示错误,即 ImportError: cannot import name HTTPSHandler 错误:

图-6 缺少openssl-devel

如果没有安装 readline-devel 和 sqlite-devel,在使用 ipython 时会发现进入时报三个 WARNING,具体影响是ipython 不能记录历史信息(当然这一点影响倒不大),同时ipython 并没有颜色提示,TAB 补全和自动缩进功能也没有,这样的 ipython 就显得毫无意义了,如图-7所示。

图-7 缺少readline-devel和sqlite-devel

如果已经在缺少包的情况下 make && make install Python2.7.10,出现错误时只需 yum install 对应的包,之后再重新进入 Python-2.7.10目录下 make && make install 即可解决问题,当然 make&& make install 所需的时间还是比较长的,所以建议在 make && make install 之前就确认这四个包的安装情况,以便一次成功。

完。

时间: 2024-12-21 10:24:19

初窥Python(三)——python版本升级及ipython的安装使用的相关文章

【python】python版本升级2.6.6到2.7.3(CentOS release 6.2)

一. 升级python到2.7.3 wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz tar -zxvf Python-2.7.3.tgz cd Python-2.7.3 mkdir /usr/local/python27 ./configure --prefix=/usr/local/python27 make make install mv /usr/bin/python /usr/bin/python2.6 ln -s

python基础---->python的使用(三)

今天是2017-05-03,这里记录一些python的基础使用方法.世上存在着不能流泪的悲哀,这种悲哀无法向人解释,即使解释人家也不会理解.它永远一成不变,如无风夜晚的雪花静静沉积在心底. Python的基础学习 一.python中函数作为参数 import math def add(x, y, f): return f(x) + f(y) print(add(25, 9, math.sqrt)) # 8.0 二.python引用自定义模块 在同目录下面定义两个文件huhx.py和huhx5.p

【转】python 三种遍历list的方法

[转]python 三种遍历list的方法 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍历列表方法1:' for i in list: print ("序号:%s 值:%s" % (list.index(i) + 1, i)) print '\n遍历列表方法2:' # 方法2 fo

接口测试基础三--python完成接口调用

前面的接口测试基础一文章有讲到,一次http接口调用,包含了httprequest(http请求)和httpresponse(http响应)两部分,要想做好接口测试,就需要对这两部分内容进行学习,再简单介绍下: 一.http request剖析 请求方法:即http请求的提交方式,一般以get和post居多 URI:请求自愿的表示,可以理解为一个请求的路径信息 协议:http协议 版本:1.1 请求正文:请求参数 请求头:告诉服务器关于客户端环境和请求正文相关的一些信息,例如浏览器版本,请求参数

Python - 三大器 迭代器,生层器,装饰器

目录 Python - 三大器 迭代器,生层器,装饰器 一. 容器 二. 可迭代对象(iterable) 三. 迭代器 四. 生成器 五. 装饰器 1. 定义 六. 闭包 Python - 三大器 迭代器,生层器,装饰器 在介绍三大器之前先来了解一下容器和可迭代对象... 一. 容器 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中.通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存

三.python高级

三.python高级 1.元类 1.1 Python 中类方法.类实例方法.静态方法有何区别? 类方法:是类对象的方法,在定义时需要在上方使用@classmethod进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用: 类实例方法:是类实例化对象的方法,只有实例对象可以调用,形参为 self,指代对象本身: 静态方法:是一个任意函数,在其上方使用@staticmethod进行装饰,可以用对象直接调用, 静态方法实际上跟该类没有太大关系 2.内存管理与垃圾回收机制 2.1 Python

Python三引号

Python三引号:多用作注释.数据库语句.编写 HTML 文本. strs = ''' 使用了三引号的字符串 ''' print (strs) # 在 ‘’‘ 里可以使用转义字符 strs = '''开始 使用反斜杠 \单引号 \' 双引号 \" 换行 \n 水平制表符 \t 结束. ''' print(strs) # 开始 # 使用反斜杠 \ # 单引号 ' # 双引号 " # 换行 # # 水平制表符 结束. # 使用三引号写数据库代码 # cursor.execute('''

python三引号的作用--换行输出

python三引号包含的字符串是可以通过回车来进行换行的. >>> print("""比划一个郭富城 ... 全场和我低下头 ... 晃动你的夸夸轴""") 比划一个郭富城 全场和我低下头 晃动你的夸夸轴 原文地址:https://www.cnblogs.com/hercules-chung/p/12391262.html

Scrapy 1.4 文档 01 初窥 Scrapy

初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping),但它也可用于使用 API(如 Amazon Associates Web Services)提取数据或用作通用的网络爬虫. 爬虫(spider)示例 为了向您展示 Scrapy 带给您的是什么,我们将使用最简单的方式运行一个爬虫,向您展示一个 Scrape Spider 的例子. 这是一个爬虫的