当前最新的 CentOS 7.5 默认安装的是 Python 2.7.5,并且默认的官方 yum 源中不提供 Python 3 的安装包。这里主要介绍两种在 CentOS 7 中安装 Python 3 的方法。
使用 SCL 安装
1. 启用 SCL
SCL 是一个社区项目,它可以在同一系统上构建,安装和使用多个版本的软件,而不会影响系统默认软件包。
yum -y install centos-release-scl
2. 安装 Python
现在我们可以访问SCL存储库,我们可以安装我们需要的任何Python 3.x版本,目前最新版本为 Python 3.6。
yum -y install rh-python36
3. 修改环境变量
要访问Python 3.6,需要使用 scl 工具为系统环境变量添加自定义路径。
scl enable rh-python36 bash
4. 查看安装信息
查看 Python 环境路径:
[root@localhost ~]# which python
/opt/rh/rh-python36/root/usr/bin/python
查看 Python 当前版本:
[root@localhost ~]# python --version
Python 3.6.3
编译源码安装
1. 基本工具
- wget(网络下载工具)
- gcc(基于C/C++的编译器)
- make(工程化编译工具)
yum -y install wget gcc make
2. 安装依赖
- bzip2-devel(解决 import bz2 报错)
- ncurses-devel(解决 import curses 报错)
- sqlite-devel(解决 import sqlite3 报错)
- gdbm-devel(解决 _dbm _gdbm 缺失)
- xz-devel(解决 _lzma 缺失)
- tk-devel(解决 _tkinter 缺失)
- readline-devel(解决 readline 缺失)
- libffi-devel(解决 _ctypes 缺失)
yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel
3. 编译源码
下载源码包:
wget -c https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
解压源码包:
tar -zxvf Python-3.7.0.tgz
进入解压目录:
[root@localhost ~]# cd Python-3.7.0
[root@localhost Python-3.7.0]#
配置安装目录:
./configure prefix=/usr/local/python3
编译并安装:
make && make install
4. 添加链接
在用户环境变量目录下,创建一个启动程序的软链接。
ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python
5. 查看版本
[root@localhost ~]# python --version
Python 3.7.0
SLC 与编译安装各有优缺点。
SLC 方式安装更简单,不需要考虑依赖的问题。而且默认安装在 /opt 目录下(相当于 Windows 中 D:\SoftWare),不影响系统环境,直接 rm -rf 也没关系。局限在于 SLC 只提供 python3.4 - python3.6 的版本,并且会修改 $PATH 的路径。
编译安装则可以选择任意 python 的版本(只要能下载的到),但是编译与安装过程中会遇到很多 No module named 错误。如果再将启动程序软链接添加到系统环境变量目录(/usr/bin)下,依赖 python2 的 yum(#!/usr/bin/python)工具就不能使用了。