centos7自带python2,由于执行yum需要python2,所以即使安装了python3也不能删除python2
本文中的是升级,就是对于用户来说只能使用python3.6,无法使用python2.7,但是对于系统中某些东西可能还是会有出错,因为是centos7很多默认依赖python2的,所以不建议直接用本文中的 ln -s /usr/local/python3/bin/python3 /usr/bin/python,这样导致python只能指向python3.6,建议采用ln -s /usr/local/python3/bin/python3 /usr/bin/python3 和 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 ,保留原本的/usr/bin/python,/usr/bin/pip,这样就可以python2、python3并存。
具体关于在python2.7存在的情况下如何安装python3请参考本博客另一篇博文《CentOS7配置教程(十三)安装Python3》
0. 安装依赖包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
1. 切换到目录/usr/local/src,从Python官网到获取Python3的包
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
2. 对python3包进行解压缩
tar -xzf Python3.6.3.tgz
3. 在/usr/local路径下创建目录:python3
mkdir /usr/local/python3
4. 编译安装:
- 执行命令: cd /usr/local/src/Python-3.6.3
- 执行命令:./configure --prefix=/usr/local/python3
- 执行命令: make && make install
5. 进入安装的绝对路径,检查是否安装成功,执行命令:
/usr/local/python3/bin/python3.6 -V
6. 修改软连接,启动python时指向python3.6
- 备份之前的python,执行命令:
mv /usr/bin/python /usr/bin/python2.7.16 (请先查询好自己的python版本)
- 修改软连接,执行命令:
ln -s /usr/local/python3/bin/python3 /usr/bin/python
- 查看python版本,执行命令:
python -V
7. 此时已成功升级,但是存在一些问题
比如yum 依赖的是python2,所以在执行yum命令时会报错:
修改yum文件,执行命令:vim /usr/bin/yum,把/usr/bin/yum文件中的第一行修改为#!/usr/bin/python2.7
8. pip install安装的包不在python3下
pip install 还是指向了python2.7,它会把包安装到python2.7的路径下,所以需要更改/usr/bin/pip 文件中的第一行修改为#!/usr/bin/python,因为/usr/bin/python已经指向了python3