结论是绝大多数情况用apt install python3或dnf install python3即可;仅当需特定版本或规避系统依赖风险时才考虑源码编译或pyenv,且务必先执行python3 --version、which python3、ls -l /usr/bin/python*查清现状。

直接说结论:绝大多数情况,apt install python3 或 dnf install python3 就够了;只有当你明确需要系统自带版本之外的特定版本(比如 3.12.4)、或要避开系统 Python 被其他工具依赖的风险时,才考虑源码编译或 pyenv。
查清现状再动手:别急着装,先 run 这三行
很多人装完发现 python --version 还是旧的,或者 pip 找不到——根本原因是没搞清当前环境到底有啥。必须先执行:
-
python3 --version—— 看系统是否已有 Python 3 及其版本 -
which python3—— 看它装在哪,是不是 /usr/bin/python3 -
ls -l /usr/bin/python*—— 看软链接关系,尤其注意python是否指向python2(CentOS 7 常见)
如果输出显示已有 3.8+ 且你项目兼容,基本不用重装;如果只有 python2.7 或版本太低(如 3.6),再决定下一步。
包管理器安装:Ubuntu/Debian 用 apt,CentOS/RHEL 用 dnf/yum
这是最安全、最省心的方式,依赖自动解决,升级也走系统通道。但注意仓库版本滞后(Ubuntu 22.04 最高只到 3.10,无法装 3.12)。
- Ubuntu/Debian:
sudo apt update && sudo apt install -y python3 python3-pip python3-dev - CentOS 7:
sudo yum install -y python3 python3-pip(需先yum install epel-release) - CentOS 8+/Rocky/Alma:
sudo dnf install -y python3 python3-pip
装完验证:python3 --version 和 pip3 --version 都应正常输出。别试图用 sudo pip3 install 全局装包——这容易污染系统,后面要用 venv 隔离。
Python 3.14.2是Python编程语言在2025年12月5日发布的稳定版本,属于3.14系列的第二个维护更新。该版本包含了18项修复,重点解决了多进程、数据类及正则表达式等模块的回归问题,并修复了CVE-2025-12084等安全漏洞。此版本标志着自由线程模式(移除GIL)正式获得官方支持,是Python发展的重要里程碑。
源码编译安装:要指定版本?必须加 --prefix 且别动系统路径
常见错误是直接 ./configure && make && make install,结果把新 Python 装进 /usr/local/bin,和系统路径冲突,后续 python 命令行为不可预测。
- 下载解压后,进入目录,务必指定独立安装路径:
./configure --prefix=/opt/python-3.12.4 - 编译安装:
make -j$(nproc) && sudo make install - 创建软链接时,不要覆盖
/usr/bin/python:sudo ln -s /opt/python-3.12.4/bin/python3.12 /usr/local/bin/python312 - 想默认用它?改
$PATH,而不是硬链:echo 'export PATH="/opt/python-3.12.4/bin:$PATH"' >> ~/.bashrc
漏装 zlib-devel、openssl-devel 等依赖会导致 pip 缺失 HTTPS 支持(pip install 报 Connection refused),CentOS 必装 libffi-devel(否则 ssl 模块 import 失败)。
pyenv:多版本共存刚需?它比源码更轻量,但别在生产服务器乱用
pyenv 本质是靠 shell 函数劫持 python 命令,对 CI/CD 或 systemd 服务不友好——进程启动时可能找不到 pyenv 初始化环境。
- 安装后,
pyenv install 3.12.4会自动下载、编译、装到~/.pyenv/versions/3.12.4 -
pyenv global 3.12.4仅影响当前用户 shell;pyenv local 3.9.13在项目目录下生效 - 它默认不装 pip,装完要手动
pyenv rehash,否则pip命令不可用 - 在 Docker 或无交互 shell 环境里,
pyenv init -输出的 eval 命令必须显式执行,否则失效
真正容易被忽略的是:pyenv 安装的 Python 二进制文件默认没有 setuid 权限,如果你要用它跑某些需要特权的脚本(比如调用 os.setuid()),得自己加权限或换方案。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










