如何在 CentOS 7 上安装 Py

发布时间:2019-10-14 09:21:00编辑:auto阅读(1958)

    当前最新的 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)工具就不能使用了。

关键字