Ubuntu 安装 Python 的稳妥流程
一 安装前准备与版本选择
- 先查看系统版本与已装 Python:lsb_release -a、python3 --version。Ubuntu 20.04 LTS 默认自带 Python 3.8;22.04 LTS 自带 Python 3.10;24.04 LTS 自带 Python 3.12。
- 版本选择建议:优先选择最新的稳定 Python 3.x(如 3.11/3.12),避免使用已停止支持的 Python 2.x。
- 原则:不要随意替换系统自带的 python3,避免影响系统工具链;多版本并存时用工具或 alternatives 管理。
二 方法一 使用 APT 安装(新手推荐)
- 更新索引并安装:sudo apt update && sudo apt install -y python3 python3-pip。
- 验证:python3 --version、pip3 --version。
- 按需安装常用附加包(以 3.12 为例):sudo apt install -y python3.12 python3.12-venv python3.12-dev。
- 说明:这是最稳妥、与系统依赖最兼容的方式,适合大多数用户与服务器场景。
三 方法二 使用 Deadsnakes PPA 安装特定版本
- 适用于需要 3.9/3.10/3.11/3.12 等特定版本的情况。
- 步骤:
- sudo apt install -y software-properties-common
- sudo add-apt-repository -y ppa:deadsnakes/ppa
- sudo apt update
- 安装所需版本,例如:sudo apt install -y python3.11 python3.11-venv python3.11-dev
- 验证:python3.11 --version
- 说明:PPA 由社区维护,版本更新及时,适合需要较新版本且不想自行编译的用户。
四 方法三 从源码编译安装(高级用户)
- 适合需要自定义编译选项、优化或测试版的情况。
- 步骤:
- 安装依赖:sudo apt install -y build-essential libssl-dev libffi-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libncursesw5-dev xz-utils tk-dev libgdbm-dev libc6-dev wget
- 下载源码(示例 3.11.6):
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz
tar -xf Python-3.11.6.tar.xz && cd Python-3.11.6
- 配置与编译:./configure --enable-optimizations --with-ensurepip=install
make -j$(nproc)
- 安全安装:sudo make altinstall(避免覆盖系统 python3)
- 验证:python3.11 --version
- 说明:–enable-optimizations 会提升性能但编译更慢;使用 altinstall 是良好实践。
五 多版本管理与常见问题处理
- 多版本切换与默认版本
- 使用 alternatives:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives --config python3(交互选择)
- 使用 pyenv(适合开发者):
curl https://pyenv.run | bash
在 ~/.bashrc 或 ~/.zshrc 添加:
export PATH=“$HOME/.pyenv/bin:$PATH”
eval “$(pyenv init --path)”
eval “$(pyenv init -)”
eval “$(pyenv virtualenv-init -)”
然后:pyenv install 3.11.6;pyenv global 3.11.6(或 pyenv local 3.11.6 为项目设定本地版本)。
- 虚拟环境与依赖隔离
- venv:python3.11 -m venv .venv && source .venv/bin/activate(安装包时用 pip 而非 sudo pip)。
- conda:适合数据科学场景(Miniconda/Anaconda)。
- 常见问题速解
- “python 命令未找到”:Ubuntu 20.04+ 默认无 python 符号链接,可用 alternatives 设置 python3,或按需谨慎创建软链(不建议覆盖系统 python3)。
- pip 安装慢或失败:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名(使用国内镜像)。
- 编译时报错缺 zlib:sudo apt install -y zlib1g-dev 后重新编译。
- 多项目依赖冲突:始终优先使用 venv/conda 隔离环境,避免全局安装。