温馨提示×

Ubuntu 系统如何更新 Python 版本

小樊
38
2025-12-24 09:37:56
栏目: 编程语言

Ubuntu 更新 Python 的推荐做法

Ubuntu 上,系统自带的 Python 与系统工具耦合度高,建议采用“安装新版本 + 多版本共存 + 虚拟环境”的策略,避免直接替换系统 Python。常见做法包括:使用 APT 与 deadsnakes PPA、从源码编译安装、使用 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
  • 验证安装:
    • python3.10 --version
  • 可选:将新版本加入备选并切换默认 python3
    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
    • sudo update-alternatives --config python3
  • 为新版本准备 pip(部分系统可能需要额外包,如 python3.10-distutils):
    • python3.10 -m ensurepip --upgrade
    • python3.10 -m pip install --upgrade pip setuptools wheel 说明:此方法简单、稳定,适合大多数桌面与服务器环境。

方法二 从源码编译安装指定版本

  • 安装编译依赖:
    • sudo apt update
    • sudo apt install -y build-essential checkinstall
      libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev
      libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
  • 下载并编译(示例为 Python 3.11.0):
    • cd /usr/src
    • sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
    • sudo tar xzf Python-3.11.0.tgz
    • cd Python-3.11.0
    • sudo ./configure --enable-optimizations
    • sudo make -j$(nproc) altinstall
  • 验证安装:
    • python3.11 --version 提示:使用 make altinstall 可避免覆盖系统默认的 python3,新版本以 python3.x 形式存在。

方法三 使用 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 并重新加载:
      • export PATH=“$HOME/.pyenv/bin:$PATH”
      • eval “$(pyenv init --path)”
      • eval “$(pyenv init -)”
      • eval “$(pyenv virtualenv-init -)”
    • source ~/.bashrc 或 source ~/.zshrc
  • 安装与切换版本:
    • pyenv install 3.10.12
    • pyenv global 3.10.12 # 全局默认
    • pyenv local 3.9.18 # 仅当前项目目录
  • 结合 pyenv-virtualenv 创建隔离环境:
    • pyenv virtualenv 3.10.12 myproj-310
    • pyenv activate myproj-310 说明:pyenv 能在用户态管理多版本,互不干扰,适合多项目并行开发。

方法四 使用 Docker 隔离运行环境

  • 直接拉取并运行所需版本(示例为 3.9):
    • docker run -it --rm python:3.9 bash
  • 在容器中安装依赖、运行脚本,完全避免影响宿主机。 说明:适合 CI/CD、测试与部署,环境一致性最好。

注意事项与最佳实践

  • 不要覆盖或删除系统自带的 /usr/bin/python3,以免影响 apt、gnome-terminal 等系统组件;如需切换默认版本,请使用 update-alternativespyenv,并保留系统版本为备选。
  • 为每个项目使用 venvpyenv-virtualenv 隔离依赖,避免跨项目冲突:
    • python3.x -m venv .venv && source .venv/bin/activate
  • 升级前备份数据与虚拟环境;升级后用 pip 检查与迁移依赖:
    • python3.x -m pip freeze > requirements.txt
  • 若遇到构建失败,优先检查编译依赖是否齐全;使用 pyenv 时可用 pyenv install -v 查看详细日志定位问题。

0