在 Ubuntu 上更新 Python 的可选方案与步骤
一 方法总览与选择建议
- 使用 APT + deadsnakes PPA:最简便,适合大多数桌面与服务器场景,便于获取较新的 Python 3.x 版本。
- 使用 pyenv:在同一台机器上管理多个 Python 版本,互不干扰,适合开发与测试多版本共存。
- 从源码编译安装:可定制编译选项与优化,适合需要特定配置或新版本尚未在仓库提供的情况。
- 使用 Docker:环境完全隔离,适合 CI/CD、交付与多版本并行验证。选择时优先考虑对现有系统影响最小、可回滚的方式(如 pyenv 或 Docker)。
二 使用 APT 与 deadsnakes PPA 安装新版本
- 更新索引并安装工具:
- sudo apt update
- sudo apt install -y software-properties-common
- 添加 deadsnakes PPA(提供多版本 Python):
- sudo add-apt-repository ppa:deadsnakes/ppa
- sudo apt update
- 安装所需版本(示例为 Python 3.10):
- sudo apt install -y python3.10
- 验证安装:
- 可选:将新版本加入 alternatives 以便切换默认 python3(谨慎操作,避免影响系统工具链)
- sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
- sudo update-alternatives --config python3
说明:上述方式不会覆盖系统自带的 python3,推荐通过 alternatives 管理默认版本,减少对 APT 与系统脚本的潜在影响。
三 使用 pyenv 管理多版本(推荐开发环境)
- 安装依赖:
- sudo apt update
- sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
- 安装 pyenv(使用官方安装脚本):
- curl https://pyenv.run | bash
- 配置环境变量(写入 ~/.bashrc 或 ~/.zshrc):
- echo ‘export PYENV_ROOT=“$HOME/.pyenv”’ >> ~/.bashrc
- echo ‘export PATH=“$PYENV_ROOT/bin:$PATH”’ >> ~/.bashrc
- echo -e ‘if command -v pyenv 1>/dev/null 2>&1; then\n eval “$(pyenv init --path)”\nfi’ >> ~/.bashrc
- source ~/.bashrc
- 安装与切换版本:
- pyenv install 3.10.12
- pyenv global 3.10.12 # 全局默认
- pyenv local 3.9.18 # 仅当前项目目录
- 验证:
- python --version
提示:pyenv 安装的版本彼此隔离,配合 pyenv-virtualenv 可进一步管理虚拟环境,避免污染系统或项目依赖冲突。
四 从源码编译安装(可定制与最新版本)
- 安装编译依赖:
- sudo apt update
- sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev
libreadline-dev libsqlite3-dev libgdbm-dev libbz2-dev libffi-dev liblzma-dev tk-dev
- 下载并编译(示例为 Python 3.11.0):
- wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
- tar -xf Python-3.11.0.tgz && cd Python-3.11.0
- ./configure --enable-optimizations
- make -j “$(nproc)”
- sudo make altinstall # 使用 altinstall 避免覆盖系统 python3
- 验证:
- python3.11 --version
说明:如需将新版本链接为默认 python3,可通过 alternatives 注册后再切换,避免直接替换 /usr/bin/python3。
五 重要注意事项与最佳实践
- 不要随意替换系统自带的 /usr/bin/python3,以免影响 APT、GNOME Terminal 等系统组件;优先使用 update-alternatives 或版本管理工具进行切换。
- 为每个项目使用 venv 或 pyenv-virtualenv 隔离依赖,减少版本与包冲突:
- python3 -m venv .venv && source .venv/bin/activate
- 升级前备份关键数据与虚拟环境,先在测试环境验证依赖兼容性;升级后使用 pip freeze > requirements.txt 记录依赖。
- 若使用 Anaconda/Miniconda,请用 conda 管理 Python 与包:conda update python(在对应环境中执行)。
- 版本选择建议:Python 2 已于 2020 年停止支持,优先选择受支持的 Python 3.x 版本(如 3.8+ 用于 Web 开发)。