一、安装python3环境
centos7自带版本是python2.7
如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/
1、先查看系统python的位置在哪儿
whereis python
python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/
cd /usr/bin/ ll python*
python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。
2、下载python3的包之前,要先安装相关的依赖包,用于下载编译python3:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
运行了以上命令以后,就安装了编译python3所用到的相关依赖
3、默认的centos7是没有安装pip,先添加epel扩展源
yum -y install epel-release
4、安装pip
yum install python-pip
5、用yum装wget
yum -y install wget
6、用wget下载python3的源码包,或者自己先下载好,上传到服务器再安装,如果网络快可以直接安装
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tar.xz
7、编译python3源码包,解压
xz -d Python-3.10.13.tar.xz tar -xf Python-3.10.13.tar
8、进入解压后的目录,依次执行下面命令进行手动编译
// 安装openssl yum install -y openssl-devel openssl11 openssl11-devel export CFLAGS=$(pkg-config --cflags openssl11) export LDFLAGS=$(pkg-config --libs openssl11) cd Python-3.10.13 ./configure --prefix=/usr/local/python3 make && make install
9、安装依赖zlib、zlib-deve
yum install zlib zlib yum install zlib zlib-devel
10、最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
11、添加软链接,将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
12、添加python3的软链接
ln -s /usr/local/python3/bin/python3.10 /usr/bin/python
13、添加pip3的软链接
mv /usr/bin/pip /usr/bin/pip.bak ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip
二、yum升级
安装完python3以后,会发现yum出错,不能用了,这是因为yum是基于python2.7的。
File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
解决办法
# vi /usr/bin/yum 将第一行"#!/usr/bin/python"改为"#!/usr/bin/python2"即可。
安装软件时又会出现另一种报错
Downloading packages: File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e: ^ SyntaxError: invalid syntax
问题与前面一个一样,因此解决办法也是一样的:
# vi /usr/libexec/urlgrabber-ext-down 将第一行"#!/usr/bin/python"改为"#!/usr/bin/python2"即可。