centos7中自带的python2,如果要是用python3,就需要自己安装了,因为yum源中没有python3,需要下载包进行源码编译安装,下面是具体安装步骤。

1.安装python3相关依赖包

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

执行这条命令即可,没有报错,表示安装成功

2.运行这两条命令添加epel扩展源和安装python-pip,就算已经安装运行命令也不会有什么影响

添加epel扩展源

yum -y install epel-release

安装python-pip

yum -y install python-pip

3.安装wget命令,如果已安装这条命令,可忽略

yum -y install wget

4.使用wget下载python3源码包,我下的python3.7.4,如需要其他版本,可去https://www.python.org/ftp/python/下载

wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz

5.解压源码包,并且编译安装

#解压,根据下载版本的不同更改后面的名称

xz -d Python-3.7.4.tar.xz

tar -xf Python-3.7.4.tar

#进入解压后的目录,编译并且安装

cd Python-3.7.4

./configure prefix=/usr/local/python3

make && make install
这个过程需要点时间,没有报错表示安装完成
我在安装的时候报了一个错误,ModuleNotFoundError: No module named '_ctypes'




centos7安装 DL380 G9 Centos7安装报错_Python


查了一下发现是因为
Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named '_ctypes'"的错误。
解决方法:
yum -y install libffi-devel
执行上面这条命令后重新make && make install,这次没有报错,安装成功
6.为了能直接使用python3命令,建立软连接,把python3的bin添加到环境变量中
使用ls命令为python3建立软链接到/usr/bin下面,我是直接使用python3,因为系统默认python命令是启动python2,如果想使用python命令来启动python3,下面会说明
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
#添加python3 pip的软连接,我这里直接命名为pip3和python2的区别
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
添加python3路径d到环境bi变量
export PATH=$PATH:/usr/local/python3/bin
上面这条命令是临时添加,要想永久添加需要在配置文件中添加。
vim /etc/profile
在文件最后添加 export PATH=$PATH:/usr/local/python3/bin
重新加载配置文件
source /etc/profile
查看配置文件是否添加成功
echo $PATH
出现这个表示配置文件添加成功
/usr/local/python3/bin
查看python3和pip3是否添加完成


centos7安装 DL380 G9 Centos7安装报错_Python_02


centos7安装 DL380 G9 Centos7安装报错_python_03


到此python3在centoscentos7上以全部anzhuan安装完成
————————————————————————————————————
下面说一下如何讲 python命令原来指向python2,改成指向python3,让python2指向的是python2.7

#将原来的链接备份

mv /usr/bin/python /usr/bin/python.bak

因为系统默认python2 和 python都是指向python2.7,所以我们改变python命令的指向不会影响Python2的使用

#添加python3的软链接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

要知道执行到这里,python命令启动的是python3.7,python2命令才是启动python2.7

因为yum命令中使用了python2,所以需要改变一些配置,不然yum会无法使用

vim /usr/bin/yum

把#! /usr/bin/python修改为#! /usr/bin/python2

vim /usr/libexec/urlgrabber-ext-down

把#! /usr/bin/python 修改为#! /usr/bin/python2