先安装一些依赖包,编译python的时候需要用到
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
然后下载python安装包
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz tar -zxvf Python-3.8.3.tgz
编译python
#创建编译安装目录,选个路径建个文件夹,后面编译的python放在这里 mkdir /usr/local/python383 #下面这个cd是进入的刚刚下载解压后的python安装包文件夹 #后面都是在安装包路径下执行 cd Python-3.8.3 ./configure --prefix=/usr/local/python383 make && make install
安装好之后还要修改一下软链接,linux下的软链接有点类似Windows的快捷方式
查看一下当前python的软链接
/usr/bin里面存的东西,就相当于 exe的一个启动程序,一般自己安装东西不要放这里
可以看到,我这个机器/usr/bin/路径下有一个文件python2.7,系统安装的,还有两个软链接
级联的软链接,也就是说此时执行python和python2都可以打开python2.7
我也可以在这个路径下新建一个软链接,比如python100,让其链接到这里的python2.7文件,或者链接到另外两个软链接,都可以(说这个主要就是理解一下软链接是什么意思)
上面执行了一个操作,删除python软链接,这样的话,在终端执行python就打不开python2.7了,但是输入python2还是可以的,因为python2这个软链接还在呢
删除了之后,我们就可以将创建一个名为python的软链接链接到刚刚安装的python3.8了
下面进入到/usr/local/python383/bin/下面,这里有我们刚刚安装的python3.8
可以看到真正的可执行文件名叫python3.8,那个python3其实只是个快捷方式
然后就还在/usr/bin/路径下(因为这个路径相当于是Windows的环境变量,终端输命令就可以直接调这里的文件)新建一个软链接,取名还为python
ln -s /usr/local/python383/bin/python3 /usr/bin/python #当然这里也可以链接python3.8,反正都是级联的链接 ln -s /usr/local/python383/bin/python3.8 /usr/bin/python #后面的/usr/bin/python这个链接名是自己取的,也可以改成自己的名字 #比如/usr/bin/lzb,这样的话,我直接输lzb就可以进入python3.8
到这里的操作过程是,删除了python到python2.7的软链接,新建了python到python3.8的链接
这样会有个问题,就是再执行yum的时候报错,因为yum命令依赖python2.7,python到python2.7的链接没了,yum命令里就找不到python2.7了,所以报错
我的操作是,还把python到python2.7的软链接链接上,这样yum还可以通过python找到python2.7
把python3.8链接的名字改成python3就行,后面自己用的时候就执行python3命令即可
下面同样给刚刚安装的python3.8的pip3.8也建一个软链接,取名pip3
当然也可以选择修改一下yum的配置文件,因为yum调python2.7不是通过“绝对路径”(Windows里的概念),而是通过软链接python,我们将yum调python2.7的软链接改为python2.7(绝对路径)或python2.7(这个也是软链接,没有删除)都行
vi /usr/bin/yum 把 #! /usr/bin/python 修改为 #! /usr/bin/python2 vi /usr/libexec/urlgrabber-ext-down 把 #! /usr/bin/python 修改为 #! /usr/bin/python2 vi /usr/bin/yum-config-manager #!/usr/bin/python 改为 #!/usr/bin/python2
最终对软链接的操作就是新增了两个而已



