CentOS系统自带的python通常为2.6的,可能一些情况下需要升级到最新,目前2版本最新的为2.7.13.
完整升级需要做以下几项事情:
- 为yum保留老版本,更改yum中调用的python路径;
- 安装python2.7.13新版本;
- 安装pip工具;**
一、更改yum调用的python路径
1. 查看原来python版本
[root@dqy-temp ~]# python -V
Python 2.6.6
2. 查看python可执行命令
[root@dqy-temp ~]# cd /usr/bin/
[root@dqy-temp bin]# ll python*
-rwxr-xr-x. 2 root root 4864 2016-08-18 23:14 python
lrwxrwxrwx. 1 root root 6 2017-02-03 23:01 python2 -> python
-rwxr-xr-x. 2 root root 4864 2016-08-18 23:14 python2.6
3. 修改yum命令
vi /usr/bin/yum
将第一行的:
#!/usr/bin/python
改为:
#!/usr/bin/python2.6
4. 测试yum并为后续安装依赖
至此yum命令修改完成,可以测试下,没有报错则正确。
# wget为网络下载工具,后续命令中要用到
# gcc为编译工具,源码安装时要用到
# vim为文本编辑工具,替换vi用
yum -y install wget vim gcc
# 涉及到ssl,后续pip访问https要用到,具体不解释,也是网上找的
yum -y install Python-devel libffi-devel openssl-devel
# 不解释,也是网上找的
yum -y install readline readline-devel
二、源码安装python2.7.13
1.下载源码包
# 进入root主目录
cd ~
# 下载源码包
wget --no-check-certificate https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
2.解压到任意目录
# 直接解压到root主目录
tar -zxvf Python-2.7.13.tgz
3.安装前修改源码包
若不提前修改,安装好后会有依赖找不到,会一直报错,最终还是要重新安装(自己踩过的坑)
vim ~/Python-2.7.13/Modules/Setup.dist
# 将如下行前面的#注释号去掉
readline readline.c -lreadline -ltermcap
# 将如下行前面的#注释号去掉
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
# 将如下行前面的#注释号全去掉
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
#保存,退出
4.编译安装
# 进入源码目录
cd ~/Python-2.7.13
# 编译,并指定安装位置
./configure --prefix=/usr/local/python2.7.13
# 大约一两分钟,验证编译是否正确,若如下命令输出0则正确,非0则错误
echo $?
# 安装:前一步编译通过以后执行
make && make install
5.设置环境变量
# 备份-并删除系统路径下老版本可执行文件
mv /usr/bin/python /usr/bin/python-old
mv /usr/bin/python2 /usr/bin/python2-old
# 添加新版可执行文件
cp /usr/local/python2.7.13/bin/python /usr/bin/python
ln -s /usr/local/python2.7.13/bin/python /usr/bin/python2
6.验证python2.7.13
# 如提示2.7.13则安装正确
[root@dqy-temp ~]# python -V
Python 2.7.13
三、安装pip
1. 安装pip前先安装setuptools
# 官网可以下载到安装包
https://pypi.python.org/pypi/setuptools
# 下载
$wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65
# 安装
$ tar -zxvf setuptools-12.0.3.tar.gz
$ cd setuptools-12.0.3
$ python setup.py install
2. 安装pip
# 官网下载pip:若是链接失效则自己去官网下载
$wget --no-check-certificate https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
# 安装
$ tar -zxvf pip-9.0.1.tar.gz
$ cd pip-9.0.1
$ python setup.py install
# 将pip添加的系统path中
ln -s /usr/local/python2.7.13/bin/pip /usr/bin/pip
# 验证pip安装是否正确:若成功则大功告成
pip install requests
# 忽略中间某些步骤很可能pip也安装成功,但用来安装requests等库时可能会报错。
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting xxx
Could not fetch URL https://pypi.python.org/simple/xxxx/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement xxx (from versions: )
No matching distribution found for xxx