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
参考资料
标签:bin,DW1,3.7,Python,安装,CentOS7,python,root,Python3 来源: https://blog.csdn.net/qq_39315740/article/details/98482884