系统相关
首页 > 系统相关> > CentOS7下安装Python3

CentOS7下安装Python3

作者:互联网

前言

CentOS7原生的Python是2.7.5的。
本人的开发习惯是Python3,而且想到后续搭建jupyter notebook环境,安装各种包,都跟Python版本有密切关系。所以抱着不作会死的态度,在CentOS上安装Python3,本篇主要记录踩坑的过程。


原生Python

首先我们先进入/usr/bin/,参看系统当前的Python环境:

[root@DW1 ~]# cd /usr/bin
[root@DW1 bin]# ls python*
python  python2  python2.7
[root@DW1 bin]# ls -al python*
lrwxrwxrwx 1 root root    7 Aug  4 23:55 python -> python2
lrwxrwxrwx 1 root root    9 Aug  4 23:55 python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Jun 20 16:28 python2.7

可以看到我们原生系统里会有3个Python文件,而且这之间具有依赖关系。
这时先不要对文件进行任何操作(包括备份),不然后面缺少依赖项的时候会很麻烦。


Python3下载

Python各版本下载连接:https://www.python.org/ftp/python/
我选择了Python3.7.0版本,下载主要有两种方式:
通过wget命令,直接下载到服务器或虚拟机:

# 在/usr/local下创建一个python3目录,把3.7.0安装包下载到该目录
[root@DW1 local]# cd /usr/local
[root@DW1 local]# mkdir python3
[root@DW1 python3]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

或者直接点开链接下载安装包,然后通过xshell等工具上传到你的目标机器。

下载好后对安装包进行解压:

[root@DW1 python3]# tar -xvf Python-3.7.0.tgz
# 解压后的文件
[root@DW1 python3]# ll
total 22220
drwxr-xr-x 18  501  501     4096 Jun 27  2018 Python-3.7.0
-rw-r--r--  1 root root 22745726 Jun 27  2018 Python-3.7.0.tgz

安装包编译

因为下载的包是没有编译的,所以我们还要进行编译。

[root@DW1 python3]# cd Python-3.7.0
[root@DW1 python3]# ./configure --prefix=/usr/local/python3Dir

上面这句指令非常重要,其作用是指定bin、lib等安装目录,如果不设置,则会分散地安装到Linux默认的目录中,造成我们管理的不便。

# 开始编译
[root@DW1 Python-3.7.0]# make
[root@DW1 Python-3.7.0]# make install
编译过程中可能会遇到以下错误:
configure: error: no acceptable C compiler found in $PATH
configure: error: in `/usr/local/python3/Python-3.7.0':
configure: error: no acceptable C compiler found in $PATH
# 缺少gcc环境
[root@DW1 Python-3.7.0]# yum install -y gcc
zipimport.ZipImportError: can’t decompress data; zlib not available
# 缺少zilb依赖项
[root@DW1 Python-3.7.0]# yum -y install zlib*
ModuleNotFoundError: No module named ‘_ctypes’
# 安装libffi-devel依赖
[root@DW1 Python-3.7.0]# yum install libffi-devel -y

这三个问题解决后重新执行make和make install即可。


备份与连接

安装完成后,如果用以下命令查看Python版本,会发现还是旧版本:

# 注意V是大写
[root@DW1 Python-3.7.0]# python -V
Python 2.7.5

这时候我们回到最开始的/usr/bin,把一开始提到的三个Python文件中的第一个备份,然后暂且放在一边。

[root@DW1 bin]# mv python python.bak
[root@DW1 bin]# ls -al python*
lrwxrwxrwx 1 root root    9 Aug  4 23:55 python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Jun 20 16:28 python2.7
lrwxrwxrwx 1 root root    7 Aug  4 23:55 python.bak -> python2

然后添加一个软连接,Python版本就会换成我们的新版本啦:

[root@DW1 bin]# ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python
[root@DW1 bin]# ll -a python*
lrwxrwxrwx 1 root root   33 Aug  5 01:08 python -> /usr/local/python3Dir/bin/python3
lrwxrwxrwx 1 root root    9 Aug  4 23:55 python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Jun 20 16:28 python2.7
lrwxrwxrwx 1 root root    7 Aug  4 23:55 python.bak -> python2
[root@DW1 bin]# python -V
Python 3.7.0

最后还有一点收尾工作,yum命令是需要Python支持,如果我们贸然把原生版本换了可能会有出错的风险,因此可以让yum继续使用原生版本的Python:

[root@DW1 bin]# vi /usr/bin/yum
# 因为现在python已经被我们换成3.7.0
# 所以要把第一行由#!/usr/bin/python修改为#!/usr/bin/python2.7

参考资料

Centos 7安装python3

标签:bin,DW1,3.7,Python,安装,CentOS7,python,root,Python3
来源: https://blog.csdn.net/qq_39315740/article/details/98482884