CentOS 怎么配置 Python 环境:安装、虚拟环境与多版本管理指南

木白
木白
发布时间:2026-08-24| 162人浏览过
原创

前言

在 CentOS 上部署 Python,真正容易出问题的地方通常不在“怎么安装”,而在“该选哪种安装方式、会不会影响系统自带 Python、后续项目怎么隔离依赖”。这篇文章按实际运维流程重新整理了一遍:先准备编译和运行依赖,再分别说明 YUM 安装、源码编译和 pyenv 多版本管理的适用场景,最后补上虚拟环境与验证方法。读完后,你可以根据自己是图省事、要新版本,还是要多版本共存,直接选出合适方案。

在 CentOS 上部署 Python,真正容易出问题的地方通常不在“怎么安装”,而在“该选哪种安装方式、会不会影响系统自带 Python、后续项目怎么隔离依赖”。这篇文章按实际运维流程重新整理了一遍:先准备编译和运行依赖,再分别说明 YUM 安装、源码编译和 pyenv 多版本管理的适用场景,最后补上虚拟环境与验证方法。读完后,你可以根据自己是图省事、要新版本,还是要多版本共存,直接选出合适方案。

先更新系统并补齐基础依赖

无论你最终打算用 yum、源码编译,还是后面使用 pyenv,先把系统软件包和基础依赖准备好,都能减少后续编译失败、模块缺失这类问题。

# 更新系统软件包
sudo yum update -y

# 安装开发工具组(包含gcc、make等编译工具)
sudo yum groupinstall -y "Development Tools"

# 安装Python编译及运行依赖(openssl、bzip2、zlib等)
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget

如果你的目标只是直接装仓库里的 Python,这一步同样值得做;如果你准备编译 3.9.9 这类指定版本,这些依赖基本属于前置条件。

Python 安装方式怎么选

CentOS 上常见的 Python 安装路径主要有两类:直接用 YUM 安装,或者从源码编译。前者部署快、维护简单,后者更适合指定版本和自定义安装路径。

对比 CentOS 上使用 YUM 安装与源码编译安装 Python 的适用场景、版本特点和关键命令
CentOS 安装 Python:YUM 与把“快速可用”和“指定版本”两条安装路径并排展示,便于先做方案选择。

方案一:用 YUM 安装,适合快速可用

对大多数服务器场景来说,仓库里的预编译包已经够用。尤其是 CentOS 8 及以上版本,系统默认通常已经带有 Python 3,先查版本即可。

# CentOS 8及以上版本默认安装Python 3,可直接验证
python3 --version

# 查看Python 3版本
# 若未安装,执行以下命令
sudo yum install -y python3

# 验证安装
python3 --version
# 应输出类似"Python 3.x.x"

这条路径的优点是省事、稳定,适合新手或只需要系统级 Python 运行脚本的环境。缺点也很明确:仓库版本通常偏旧。原文提到,CentOS 7 默认还是 Python 3.6;如果你需要更新版本,YUM 往往不够用。

方案二:源码编译安装,适合指定版本和自定义配置

如果你需要 Python 3.9+,或者希望把解释器安装到独立目录、避免干扰系统默认 Python,那么源码编译更合适。下面以 Python 3.9.9 为例。

# 下载Python源码包(以3.9.9为例,替换为目标版本)
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz

# 解压源码包
tar xzf Python-3.9.9.tgz
cd Python-3.9.9

# 配置编译选项(--prefix指定安装路径,--enable-optimizations启用性能优化)
./configure --prefix=/usr/local/python3.9 --enable-optimizations

# 编译并安装(make -j N使用N个线程加速编译,根据CPU核心数调整)
make -j 8
sudo make altinstall  # 使用altinstall避免覆盖系统默认Python

# 创建软链接(方便全局调用)
sudo ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python3.9
sudo ln -s /usr/local/python3.9/bin/pip3.9 /usr/bin/pip3.9

# 验证安装
python3.9 --version  # 应输出"Python 3.9.9"
pip3.9 --version     # 验证pip是否可用

这里最关键的是 sudo make altinstall。它的目的不是“换一种写法”,而是避免直接覆盖系统默认 Python,降低对系统工具链的影响。对于线上机器,这一步尤其重要。

命令找不到时,检查 PATH 环境变量

源码安装后,如果你执行 python3.9 或 pip3.9 提示命令不存在,通常说明安装目录没有进入系统 PATH。这时可以按用户级方式补到 ~/.bashrc 中。

# 编辑~/.bashrc文件(用户级配置)
echo 'export PATH=/usr/local/python3.9/bin:$PATH' >> ~/.bashrc

# 使配置生效
source ~/.bashrc

# 验证PATH是否生效
echo $PATH  # 应包含/usr/local/python3.9/bin

如果前面已经创建了软链接到 /usr/bin/python3.9 和 /usr/bin/pip3.9,很多情况下可以直接调用;但独立把安装目录加入 PATH,仍然更方便排查和维护。

项目依赖隔离:虚拟环境是必备项

Python 环境配好后,不建议所有项目共用一套包。更稳妥的做法是每个项目使用自己的虚拟环境,把依赖限制在项目目录内部。Python 3.3 以上自带 venv,通常无需额外安装。

# 使用venv创建虚拟环境(Python 3.3+自带,无需额外安装)
python3.9 -m venv myenv  # 创建名为myenv的虚拟环境

# 激活虚拟环境
source myenv/bin/activate  # 激活后,终端提示符会显示(myenv)

# 在虚拟环境中安装依赖(如numpy、pandas)
pip install numpy pandas matplotlib  # 仅安装在当前虚拟环境中

# 停用虚拟环境
deactivate  # 退出虚拟环境

这一步的核心价值是避免依赖冲突。比如一个项目需要旧版 numpy,另一个项目需要新版时,虚拟环境能把两者彻底隔开。日常开发或部署时,也要记得进入项目后先执行激活命令。

需要多版本共存时,用 pyenv 管理

如果你的机器上要同时维护 Python 3.8、3.9、3.10,或者需要在不同项目之间频繁切换解释器版本,单靠手动安装和软链接就会变得麻烦。这时 pyenv 更适合长期管理。

展示 pyenv 在 CentOS 上管理多个 Python 版本的安装、全局设置与项目局部切换关系
pyenv 多版本管理关系图用流程和层级关系说明 pyenv 适合解决什么问题,以及 global 和 local 的区别。
# 安装pyenv依赖
sudo yum install -y git gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel

# 克隆pyenv仓库到用户目录
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# 配置环境变量(添加到~/.bashrc)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

# 使配置生效
source ~/.bashrc

# 安装指定版本的Python(如3.9.9)
pyenv install 3.9.9

# 设置全局默认Python版本
pyenv global 3.9.9

# 验证当前Python版本
python --version  # 应输出"Python 3.9.9"

# 为特定项目设置局部Python版本(在项目目录下执行)
pyenv local 3.8.10  # 仅该项目使用3.8.10版本

pyenv global 适合设置整台机器当前默认版本,pyenv local 则更适合项目目录。对于需要维护多个业务项目、测试多版本兼容性的场景,这种方式比手工维护多个二进制路径更清晰。

最后一步:用脚本验证环境是否真的可用

安装完成不等于环境可用。最直接的检查方式,是写一个最小测试脚本,确认解释器、第三方库和运行路径都正常。

说明 CentOS 上 Python 环境完成后的验证顺序,包括 PATH、虚拟环境、依赖安装和测试脚本输出
Python 环境验收检查图把“命令可调用、依赖已隔离、脚本能运行”这三个验收点画成顺序检查图。
# 创建测试脚本(test.py)
cat << EOF > test.py
print("Hello, Python!")
import numpy
print("NumPy version:", numpy.__version__)
EOF

# 运行脚本(在虚拟环境中运行需先激活)
python3.9 test.py
# 应输出"Hello, Python!"及NumPy版本

如果脚本能正常输出 Hello, Python!,并且能打印出 NumPy version,说明当前环境至少已经具备解释器可用、第三方包可导入这两项基础条件。

怎么选更合适:一页看懂

如果你只是想尽快在 CentOS 上跑起 Python,直接用 yum install -y python3 就够了;如果你明确需要 Python 3.9.9 这类指定版本,源码编译会更灵活;如果机器上长期需要多个版本并行维护,pyenv 的管理成本最低。无论走哪条路,最后都建议配合 venv 使用,把项目依赖隔离开,再用测试脚本完成一次实际验证。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。