CentOS系统中Python3安装教程 – wiki基地

CentOS 系统中 Python3 详细安装教程

在 CentOS 系统中安装 Python3 有多种方法,每种方法都有其优缺点。本文将详细介绍以下几种常用的安装方式:

  1. 使用 YUM 包管理器安装(推荐大多数用户)
  2. 从源码编译安装(更灵活,适合需要特定版本或定制的用户)
  3. 使用 SCL(Software Collections)安装(适合需要多个 Python 版本共存的场景)
  4. 使用 EPEL (Extra Packages for Enterprise Linux) 源安装
  5. 使用 IUS (Inline with Upstream Stable) 源安装

此外,本文还将涵盖安装后的配置、常见问题处理以及一些最佳实践。

1. 使用 YUM 包管理器安装 (推荐)

这是最简单快捷的安装方式,适合大多数用户。CentOS 7 默认可能只提供 Python 2.7,但我们可以通过启用 EPEL 或 IUS 源来安装 Python 3。CentOS 8/9 默认提供多个 Python 3 版本。

1.1 CentOS 7

步骤 1:安装 EPEL 或 IUS 源(二选一)

  • EPEL (Extra Packages for Enterprise Linux)

    bash
    sudo yum install epel-release

  • IUS (Inline with Upstream Stable)

    bash
    sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

    IUS 通常提供更新的 Python 版本。

步骤 2:安装 Python 3

  • 使用 EPEL 安装 (通常是 Python 3.6)

    bash
    sudo yum install python36

  • 使用 IUS 安装 (可以选择特定版本,例如 Python 3.9)

    bash
    sudo yum install python39

步骤 3:验证安装

bash
python3.6 --version # 如果使用 EPEL 安装
python3.9 --version # 如果使用 IUS 安装

步骤 4: 安装 pip (可选)

通常,通过 yum 安装的 Python 3 也会自动安装 pip。如果没有,可以手动安装:

bash
sudo yum install python36-pip #EPEL
sudo yum install python39-pip #IUS

或者可以使用通用的安装方式:

bash
sudo yum install python3-pip

步骤 5:创建软链接(可选)

如果您希望使用 python3 命令而不是 python3.6python3.9,可以创建一个软链接:

bash
sudo ln -s /usr/bin/python3.6 /usr/bin/python3 # EPEL
sudo ln -s /usr/bin/python3.9 /usr/bin/python3 # IUS

同理,您可以为 pip 创建软链接:

bash
sudo ln -s /usr/bin/pip3.6 /usr/bin/pip3
sudo ln -s /usr/bin/pip3.9 /usr/bin/pip3

1.2 CentOS 8/9

CentOS 8/9 默认提供 python3 命令,通常指向 Python 3.6 或更高版本。您可以直接安装特定版本的 Python 3(例如 Python 3.8 或 3.9):

步骤 1:安装 Python 3

bash
sudo yum install python38 # 安装 Python 3.8
sudo yum install python39 # 安装 Python 3.9

步骤 2:验证安装

bash
python3.8 --version
python3.9 --version

步骤 3:安装 pip(可选)

bash
sudo yum install python38-pip
sudo yum install python39-pip

步骤 4:创建软链接(可选)

bash
sudo alternatives --config python #选择默认python3版本

或者手动创建链接:

bash
sudo ln -s /usr/bin/python3.8 /usr/bin/python3
sudo ln -s /usr/bin/pip3.8 /usr/bin/pip3

2. 从源码编译安装

如果需要特定版本的 Python,或者需要自定义编译选项,可以从源码编译安装。

步骤 1:安装依赖

首先,需要安装编译 Python 所需的依赖包:

bash
sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y

步骤 2:下载 Python 源码

从 Python 官网下载所需版本的源码包(例如 Python 3.9.18):

bash
wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz

步骤 3:解压源码包

bash
tar -xf Python-3.9.18.tgz

步骤 4:配置编译选项

进入解压后的目录,并配置编译选项。--enable-optimizations 选项可以优化 Python 的性能,但会增加编译时间。--prefix 指定安装目录,建议安装到 /usr/local/python3,避免与系统自带的 Python 冲突。

bash
cd Python-3.9.18
./configure --enable-optimizations --prefix=/usr/local/python3

步骤 5:编译并安装

bash
make -j$(nproc) # 使用所有 CPU 核心进行编译,加快速度
sudo make altinstall # 使用 altinstall 而不是 install,避免覆盖系统自带的 Python

步骤 6:配置环境变量

将 Python 的 bin 目录添加到 PATH 环境变量中,以便在任何位置都可以使用 python3pip3 命令。

编辑 ~/.bashrc~/.bash_profile 文件(如果使用 Zsh,则编辑 ~/.zshrc),添加以下内容:

bash
export PATH=/usr/local/python3/bin:$PATH

然后,使环境变量生效:

bash
source ~/.bashrc # 或 source ~/.bash_profile 或 source ~/.zshrc

步骤 7:验证安装

bash
python3.9 --version
pip3.9 --version

步骤 8: 创建软链接 (可选)

如果你想使用 python3 而不是 python3.9,可以创建软链接:

bash
sudo ln -s /usr/local/python3/bin/python3.9 /usr/local/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.9 /usr/local/bin/pip3

3. 使用 SCL (Software Collections) 安装

SCL 允许您在 CentOS 系统中安装和使用多个版本的软件,而不会影响系统自带的版本。

步骤 1:安装 SCL 工具

bash
sudo yum install centos-release-scl

步骤 2:安装所需的 Python 版本

例如,安装 Python 3.9:

bash
sudo yum install rh-python39

步骤 3:启用 SCL

要使用 SCL 中的 Python 版本,需要使用 scl enable 命令创建一个新的 shell 会话:

bash
scl enable rh-python39 bash

在这个新的 shell 会话中,python3 命令将指向 Python 3.9。

步骤 4:验证安装

bash
python3 --version
pip3 --version

注意:

  • 每次需要使用 SCL 中的 Python 版本时,都需要使用 scl enable 命令。
  • 要退出 SCL 环境,只需输入 exit
  • 可以将 scl enable rh-python39 bash 添加到 ~/.bashrc~/.bash_profile 中,以便每次登录时自动启用 SCL。但是不建议,可能会导致一些系统工具无法正常使用。

4. 使用 EPEL 源安装(已在 1.1 中介绍)

EPEL 源提供了许多额外的软件包,包括 Python 3。在 CentOS 7 中,可以通过安装 epel-release 软件包来启用 EPEL 源,然后使用 yum 安装 Python 3。

5. 使用 IUS 源安装(已在 1.1 中介绍)

IUS 源提供了更新的软件包,通常比 EPEL 源中的版本更新。在 CentOS 7 中,可以通过安装 ius-release 软件包来启用 IUS 源,然后使用 yum 安装特定版本的 Python 3。

安装后的配置和最佳实践

  • 使用虚拟环境: 强烈建议使用虚拟环境来隔离不同项目的依赖关系。可以使用 venv 模块(Python 3.3 及更高版本)或 virtualenv 工具创建虚拟环境。
    bash
    python3 -m venv myenv #创建一个名为myenv的虚拟环境
    source myenv/bin/activate #激活虚拟环境
  • 使用 pip 安装软件包: 在虚拟环境中,使用 pip 安装所需的软件包。
    bash
    pip install requests #安装requests包
  • 定期更新: 定期更新系统和 Python 软件包,以获取最新的安全补丁和功能。
    bash
    sudo yum update #更新系统软件包
    pip install --upgrade pip #更新pip

常见问题处理

  • python 命令仍然指向 Python 2.7: 确保已正确创建软链接或配置环境变量。可以使用 which pythonwhich python3 命令查看当前使用的 Python 版本。
  • pip 命令找不到: 确保已正确安装 pip,并将其 bin 目录添加到 PATH 环境变量中。
  • 安装软件包时出现权限错误: 使用 sudo 命令以管理员权限安装软件包,或在虚拟环境中安装软件包。
  • 编译错误: 确保已安装所有必需的依赖包。如果遇到特定错误,请查阅 Python 官方文档或在线搜索解决方案。
  • SCL 环境问题: 如果在SCL 环境下安装了软件包, 退出SCL 环境后, 软件包不可用. 这是正常的, 因为SCL 是一个隔离的环境。

总结

本文详细介绍了在 CentOS 系统中安装 Python 3 的多种方法,包括使用 YUM 包管理器、从源码编译安装、使用 SCL 安装,以及使用 EPEL 和 IUS 源。每种方法都有其优缺点,您可以根据自己的需求选择最适合的方法。

无论选择哪种方法,都建议使用虚拟环境来隔离不同项目的依赖关系,并定期更新系统和 Python 软件包。希望本文能帮助您成功在 CentOS 系统中安装和使用 Python 3。如果遇到任何问题,请查阅相关文档或在线寻求帮助。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部