Ubuntu 系统如何更新 Python 版本

Ubuntu 更新 Python 的推荐做法在 Ubuntu 上,系统自带的 Python 与系统工具耦合度高,建议采用“安装新版本 + 多版本共存 + 虚拟环境”的策略,避免直接替换系统 Python。常见做法包括:使用 APT 与 deadsnakes PPA、从源码编译安装、使用 pyenv 管理多版本,以及用 Docker 隔离运行环境。方法一 使用 APT 与 deadsnakes P

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 查看详细日志定位问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1478809.html

(0)
派派
上一篇 2025-12-24
下一篇 2025-12-24

发表回复

登录后才能评论