Python 在 CentOS 系统上的完整执行 / 部署深度指南
(2025–2026 实用版 · 覆盖 CentOS 7 / CentOS Stream 8 / CentOS Stream 9)
CentOS 系列目前主流有三条线,安装和使用方式差异较大:
| 系统版本 | 当前状态(2026年) | Python 默认版本 | 推荐使用方式 | EOL 时间 |
|---|---|---|---|---|
| CentOS Linux 7 | 仍在维护(付费延长支持) | 2.7 / 3.6 | pyenv / conda / scl / 源码 | 2024-06-30(免费) |
| CentOS Stream 8 | 已于 2021 年底停止 | 3.6 / 3.9 | 不建议新项目使用 | 已 EOL |
| CentOS Stream 9 | 当前最推荐的生产线 | 3.9(系统自带) | dnf + pyenv / uv / conda | 2027-05 |
| Rocky Linux 9 / AlmaLinux 9 | CentOS Stream 的替代品 | 3.9 | 与 CentOS Stream 9 几乎一致 | 2032 年左右 |
推荐选择(2026 年视角)
| 场景 | 强烈推荐系统 | 次选 |
|---|---|---|
| 新服务器 / 新项目 | CentOS Stream 9 / Rocky 9 | AlmaLinux 9 |
| 必须兼容旧系统(金融/政府) | CentOS 7(付费支持) | Rocky 8 / AlmaLinux 8 |
| 个人开发机 / 测试环境 | CentOS Stream 9 | Rocky 9 |
| 容器化部署(Docker/K8s) | 任何版本都可以 | 优先 Stream 9 |
一、最推荐的几种安装方式对比(CentOS Stream 9 / Rocky 9)
| 方式 | 系统 Python 是否动 | 安装速度 | 多版本共存 | 适合场景 | 推荐指数 |
|---|---|---|---|---|---|
| dnf install python3* | 会动系统 Python | 最快 | 差 | 脚本、简单服务 | ★★☆☆☆ |
| pyenv | 不影响系统 | 中等 | 极好 | 开发、多项目、版本控制 | ★★★★★ |
| uv / rye / pdm | 不影响系统 | 极快 | 好 | 现代项目、追求速度的开发者 | ★★★★☆ |
| Miniconda / Mamba | 不影响系统 | 快 | 极好 | 数据科学、AI、科学计算 | ★★★★★ |
| 源码编译 | 不影响系统 | 最慢 | 极好 | 需要特定 configure 参数 | ★★☆☆☆ |
二、2026 年最推荐的「生产 + 开发」组合方案
CentOS Stream 9 / Rocky 9 推荐组合
# 1. 更新系统 + 安装最基础工具
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y git wget curl vim gcc gcc-c++ make zlib-devel bzip2-devel \
openssl-devel libffi-devel sqlite-devel xz-devel tk-devel readline-devel \
ncurses-devel gdbm-devel db4-devel libpcap-devel
# 2. 安装 pyenv(强烈推荐开发机使用)
curl https://pyenv.run | bash
# 把下面三行加到 ~/.bashrc 末尾
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
# 安装常用 Python 版本(2026 最常用)
pyenv install 3.10.14
pyenv install 3.11.9
pyenv install 3.12.7
pyenv install 3.13.0 # 如果你想尝鲜
# 设置全局默认(推荐 3.11 或 3.12)
pyenv global 3.12.7
# 验证
python --version
pip --version
使用 uv 管理项目依赖(极快、现代替代 pip)
# 安装 uv(2025-2026 速度之王)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建项目并使用虚拟环境
uv venv
source .venv/bin/activate
# 安装依赖(比 pip 快 10–100 倍)
uv pip install fastapi uvicorn httpx pandas numpy sqlalchemy asyncpg
三、生产环境部署最常见几种方式(CentOS)
- gunicorn + uvicorn(FastAPI/Flask/Django)
# 安装
uv pip install "uvicorn[standard]" gunicorn
# 启动脚本示例(/usr/lib/systemd/system/myapp.service)
[Unit]
Description=My FastAPI Application
After=network.target
[Service]
User=appuser
Group=appuser
WorkingDirectory=/opt/myapp
Environment="PATH=/home/appuser/.pyenv/shims:/home/appuser/.local/bin"
ExecStart=/home/appuser/.pyenv/shims/gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8000
Restart=always
[Install]
WantedBy=multi-user.target
- 使用 conda 环境(AI/数据科学项目)
# 下载最新 Miniforge(arm64/x86_64 自动识别)
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -p /opt/miniforge3
# 初始化并创建环境
/opt/miniforge3/bin/conda init
source ~/.bashrc
conda create -n ai python=3.11 -y
conda activate ai
# 安装常用 AI 包
conda install pytorch torchvision torchaudio cpuonly -c pytorch
pip install transformers datasets accelerate
四、常见问题快速定位表
| 现象 | 99% 原因 | 解决命令 / 方法 |
|---|---|---|
| python 命令还是 2.7 / 3.6 | PATH 没生效 / 系统 python 优先 | hash -r 或把 pyenv 路径写前面 |
| pip install 特别慢 | 默认源太慢 | uv pip install -i https://pypi.tuna.tsinghua.edu.cn/simple |
| SSL 证书错误 | 老系统 ca-bundle 过期 | sudo dnf reinstall ca-certificates |
| gcc 版本太低(编译失败) | CentOS 7 默认 gcc 4.8 | 安装 devtoolset-11 或直接用 conda |
| SELinux 导致服务无法启动 | SELinux 限制端口/文件权限 | sudo setsebool -P httpd_can_network_connect 1 |
| 防火墙挡住端口 | firewalld 默认挡 8000 等 | sudo firewall-cmd --add-port=8000/tcp --permanent |
你现在遇到的是哪种具体情况?
- 想在 CentOS Stream 9 / Rocky 9 上部署 FastAPI 项目
- CentOS 7 兼容性环境(老系统)
- 安装多个 Python 版本共存
- 用 conda 部署 AI 模型
- 遇到某个报错(请贴出来)
- 想做容器化(Dockerfile + docker-compose)
告诉我你的具体目标或问题,我给你更精准的步骤和脚本。