CentOS 系统中 Python3 详细安装教程
在 CentOS 系统中安装 Python3 有多种方法,每种方法都有其优缺点。本文将详细介绍以下几种常用的安装方式:
- 使用 YUM 包管理器安装(推荐大多数用户)
- 从源码编译安装(更灵活,适合需要特定版本或定制的用户)
- 使用 SCL(Software Collections)安装(适合需要多个 Python 版本共存的场景)
- 使用 EPEL (Extra Packages for Enterprise Linux) 源安装
- 使用 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.6
或 python3.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
环境变量中,以便在任何位置都可以使用 python3
和 pip3
命令。
编辑 ~/.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 python
和which python3
命令查看当前使用的 Python 版本。pip
命令找不到: 确保已正确安装pip
,并将其bin
目录添加到PATH
环境变量中。- 安装软件包时出现权限错误: 使用
sudo
命令以管理员权限安装软件包,或在虚拟环境中安装软件包。 - 编译错误: 确保已安装所有必需的依赖包。如果遇到特定错误,请查阅 Python 官方文档或在线搜索解决方案。
- SCL 环境问题: 如果在SCL 环境下安装了软件包, 退出SCL 环境后, 软件包不可用. 这是正常的, 因为SCL 是一个隔离的环境。
总结
本文详细介绍了在 CentOS 系统中安装 Python 3 的多种方法,包括使用 YUM 包管理器、从源码编译安装、使用 SCL 安装,以及使用 EPEL 和 IUS 源。每种方法都有其优缺点,您可以根据自己的需求选择最适合的方法。
无论选择哪种方法,都建议使用虚拟环境来隔离不同项目的依赖关系,并定期更新系统和 Python 软件包。希望本文能帮助您成功在 CentOS 系统中安装和使用 Python 3。如果遇到任何问题,请查阅相关文档或在线寻求帮助。