Linux

Centos安装python3详细教程

一、安装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"即可。