首页主机资讯Python 在 Ubuntu 上如何升级

Python 在 Ubuntu 上如何升级

时间2025-12-05 02:16:04发布访客分类主机资讯浏览244
导读:在 Ubuntu 上升级 Python 的安全做法 在 Ubuntu 上,推荐通过安装新版本或借助版本管理工具来使用新 Python,避免直接替换系统自带的 /usr/bin/python3,以免影响 apt、gnome-terminal...

在 Ubuntu 上升级 Python 的安全做法

在 Ubuntu 上,推荐通过安装新版本或借助版本管理工具来使用新 Python,避免直接替换系统自带的 /usr/bin/python3,以免影响 apt、gnome-terminal 等系统组件。常见做法包括:使用 APT + deadsnakes PPA、使用 pyenv 管理多版本、从源码编译安装(使用 make altinstall 避免覆盖系统版本)。

方法一 使用 APT 与 deadsnakes PPA 安装新版本

  • 更新索引并安装必要工具:
    • sudo apt update
    • sudo apt install -y software-properties-common
  • 添加 deadsnakes/ppa(提供较新的 Python 3.x 包):
    • sudo add-apt-repository ppa:deadsnakes/ppa
    • sudo apt update
  • 安装所需版本(示例为 Python 3.12):
    • sudo apt install -y python3.12
  • 可选:将新版本加入 alternatives 以便切换(更安全,不直接覆盖 /usr/bin/python3)
    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
    • sudo update-alternatives --config python3
  • 验证:
    • python3 --version
    • python3.12 --version 说明:上述步骤在 Ubuntu 20.04/22.04/24.04 等版本上通用;若提示找不到包,请确认已添加 PPA 并再次更新索引。

方法二 使用 pyenv 管理多个 Python 版本(推荐给开发者)

  • 安装构建依赖:
    • 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
  • 配置 Shell(写入 ~/.bashrc 或 ~/.zshrc):
    • echo ‘export PYENV_ROOT=“$HOME/.pyenv”’ > > ~/.bashrc
    • echo ‘export PATH=“$PYENV_ROOT/bin:$PATH”’ > > ~/.bashrc
    • echo ‘eval “$(pyenv init --path)”’ > > ~/.bashrc
    • echo ‘eval “$(pyenv init -)”’ > > ~/.bashrc
    • exec $SHELL
  • 安装与切换版本:
    • pyenv install 3.12.7
    • pyenv global 3.12.7 # 全局
    • pyenv local 3.12.7 # 仅当前项目目录
  • 验证:
    • python --version
    • which python 优点:多版本并存、按项目切换、不触碰系统 Python。

方法三 从源码编译安装(可定制优化)

  • 安装依赖:
    • sudo apt update
    • sudo apt install -y build-essential checkinstall
      libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev
      libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
  • 下载并编译(示例为 3.12.7):
    • cd /usr/src
    • sudo wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz
    • sudo tar xzf Python-3.12.7.tgz
    • cd Python-3.12.7
    • ./configure --enable-optimizations
    • make -j “$(nproc)”
    • sudo make altinstall
  • 验证:
    • python3.12 --version 要点:使用 make altinstall 可避免覆盖系统默认 python3;如需切换版本,可配合 update-alternatives 或改用 pyenv

注意事项与最佳实践

  • 不要覆盖系统 Python:许多系统工具依赖 /usr/bin/python3,直接替换可能引发故障;优先使用 update-alternativespyenv 管理版本。
  • 优先使用虚拟环境隔离依赖:
    • python3.12 -m venv .venv
    • source .venv/bin/activate
    • pip install --upgrade pip
  • 升级后重建依赖:不同 Python 版本的已安装包不通用,建议在各自虚拟环境中重新安装(可按需导出/迁移 requirements.txt)。
  • 关于 “python” 命令:部分系统默认没有 /usr/bin/python(指向 Python 2)。如需兼容脚本,可用 update-alternatives 配置 /usr/bin/python,或直接使用 python3 / python3.x 明确版本。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Python 在 Ubuntu 上如何升级
本文地址: https://pptw.com/jishu/764248.html
Oracle在Linux上的存储优化策略 Python 安装在 Ubuntu 上的路径

游客 回复需填写必要信息