CentOS7 安装 Python3

CentOS7 默认已经安装了Python2,笔者CentOS版本如下

[root@harvey ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 

默认已安装的Python版本如下

[root@harvey ~]# python --version
Python 2.7.5

CentOS7默认安装的Python2不能删除,因为有很多系统命令,比如yum都要用到。输入 which python,可以查看python的安装位置,一般是位于/usr/bin/python目录下

[root@harvey ~]# which python
/usr/bin/python

下面介绍安装python3的方法(建议使用 root 用户

  • (1).安装编译python需要的组件
# yum -y groupinstall "Development tools"
# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

笔者在运行第二行命令时,报如下错误
sqlite-devel-3.7.17-8.el7.x86_64.rpm: [Errno -1] 软件包与预期下载的不符。建议:运行 yum –enablerepo=base clean metadata0 ETA 正在尝试其它镜像。
这里写图片描述

上述我们没有安装成功,错误信息中可以看到建议执行如下命令,来清空刚刚的安装过程

# yum --enablerepo=base clean metadata

清空后笔者又重试了两次,最后还是上图的错误,sqlite-devel 安装失败。所以先过滤掉它,不安装它,执行如下命令安装其它依赖

# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

手动下载安装sqlite-devel

# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/sqlite-devel-3.7.17-8.el7.x86_64.rpm
# rpm -ivh sqlite-devel-3.7.17-8.el7.x86_64.rpm

在命令行下输入sqlite3如果可以看到如下信息,则说明安装成功,输入.quit退出

[root@harvey ~]# sqlite3 
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .quit
[root@harvey ~]# 
  • (2).下载解压
# mkdir /usr/local/python3
# cd /usr/local/python3
# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
# tar -xvJf Python-3.6.5.tar.xz
  • (3). 编译安装
# cd Python-3.6.5
# ./configure --prefix=/usr/local/python3
# make && make install

说明:–prefix 后面指定安装目录,即刚刚创建的目录,笔者的是/usr/local/python3

然后创建软连接

# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • (4).命令行输入python python3测试
[root@harvey ~]# python
Python 2.7.5 (default, Aug  4 2017, 00:39:18) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@harvey ~]# python3
Python 3.6.5 (default, Apr 10 2018, 15:33:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@harvey ~]# 

注意:在编写python脚本时,注意python解释器的路径,python2为 #!/usr/bin/python,python3为#!/usr/bin/python3

猜你喜欢

转载自blog.csdn.net/HG_Harvey/article/details/79889476