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 形式存在。
- python3.11 –version
方法三 使用 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-alternatives 或 pyenv,并保留系统版本为备选。
- 为每个项目使用 venv 或 pyenv-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