安装与选择 Python 版本
适用:CentOS Stream 9 / 10 · 核对日:2026-11-01 · 官方依据:仓库内包元数据(dnf repoquery)与 dnf 自身输出,全部在容器实测。
Python 是 Stream 上最容易踩版本坑的运行时:默认版本不许动,新版本用并行包,模块流在 Stream 10 上已经消失。本页结论全部来自容器实测(Stream 9 镜像 sha256:4fdfb36…,Stream 10 stream10 镜像,2026-11-01)。
先确认你手里的默认版本
Section titled “先确认你手里的默认版本”$ python3 --version$ dnf repoquery --qf '%{name}-%{version}' python3预期输出(实测摘录):
# Stream 9Python 3.9.25python3-3.9.25
# Stream 10Python 3.12.12python3-3.12.12并行版本:装一个不干扰系统的新 Python
Section titled “并行版本:装一个不干扰系统的新 Python”两代 Stream 都以独立包提供较新的解释器。先看仓库里有哪些:
$ dnf repoquery --qf '%{name}-%{version}' 'python3.*' | sort -u实测摘录:
# Stream 9 可装python3.11-3.11.13python3.12-3.12.13
# Stream 10 可装python3.14-3.14.3安装与验证(以 Stream 9 装 3.12 为例):
$ sudo dnf install python3.12$ python3.12 --version预期输出:
Python 3.12.13并行包的命令名带版本号(python3.12),默认 python3 仍指向系统版本,dnf 不受影响。回退即 sudo dnf remove python3.12。
模块流不是新版本的入口。如果你照着旧教程执行 dnf module enable python3x:
- Stream 9:模块列表里没有 Python 条目(实测 24 条模块记录里无 python);
- Stream 10:直接报错——模块化内容已清空,
dnf module list为 0 条,且 dnf 4.20.0 打出弃用警告:
WARNING: modularity is deprecated, and functionality will be removed in a future release of DNF5.这条差异也是报错速查里的常客:把 RHEL 8 / CentOS 8 时代的模块化教程搬来 Stream 10 用,就会撞上它。
项目里怎么用:虚拟环境
Section titled “项目里怎么用:虚拟环境”$ python3.12 -m venv ~/venvs/myproj$ source ~/venvs/myproj/bin/activate(myproj) $ python --version && pip --version预期:环境内 python 即 3.12.x,pip 装的包只进虚拟环境目录。系统 RPM Python 包(dnf install python3-requests 这类)与虚拟环境互不可见——需要系统级 RPM 包时用 dnf 装,项目依赖用 pip 装,两层不要混写。
- 并行版本:
sudo dnf remove python3.12,不留残留; - 虚拟环境:删除环境目录即可(
rm -rf ~/venvs/myproj); - 默认 Python 不可回滚也不可升级——如果你已经动过它,从安装介质/容器重新核对
python3包版本并恢复原包。
| 现象 | 原因 | 处理 |
|---|---|---|
dnf module enable python3x 报错 | Stream 9 无 Python 模块;Stream 10 模块化已移除 | 用并行版本包 python3.11/3.12/3.14 |
| pip 装的包与 dnf 装的冲突 | 同一 site-packages 混写 | 项目内用 venv,系统级只用 RPM |
| 编译扩展报找不到 Python 头文件 | 缺开发包 | dnf install python3.12-devel(对应版本) |
| python3 版本和文档对不上 | 跟随 RHEL 点版本滚动 | 以 dnf repoquery python3 实测为准,注意核对日 |
- Node.js 安装与模块流 — 同样存在「默认非模块包 vs 模块流」差异的运行时
- 仓库与滚动内容 — 并行版本包来自 AppStream
- 报错速查 — 模块化相关报错的处理
- 装完 10 分钟 — 新机基础动作清单
- 官方:CentOS Stream 文档