商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu如何更新Python安装

Ubuntu如何更新Python安装

  发布于2026-07-13 阅读(0)

扫一扫,手机访问

Ubuntu 上更新 Python,听起来是个小操作,但如果手一抖直接换了系统自带的 /usr/bin/python3,后面的麻烦事可不少——依赖系统工具的脚本可能就罢工了。所以,今天聊三个靠谱的路径:用 APT 装新版本、用 pyenv 灵活管理、以及从源码编译。优先推荐前两种,尤其是日常开发和服务器运维场景,尽量别碰系统级 Python 的“老巢”。

Ubuntu如何更新Python安装

方法一:APT 安装或升级到新版本

这是最直接的办法,适合只想用一个官方包管理版本的情况。

  • 更新包索引,安装必要依赖:
sudo apt update
sudo apt install -y software-properties-common
  • 如果需要较新版本(比如 3.11、3.12),通常会添加 deadsnakes PPA:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
  • 安装目标版本,以 Python 3.11 为例:
sudo apt install -y python3.11
  • 如果想把这个版本设为系统默认的 python3,别用覆盖,用 update-alternatives 注册:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo update-alternatives --config python3
  • 验证一下:
python3 --version
python3.11 --version

如果你只是想升级现有 Python 的小版本(比如 3.10.4 → 3.10.12),直接 sudo apt upgrade python3 就够了。跨大版本(比如 3.10 → 3.11)必须装新包 + 切换 alternatives。

方法二: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

然后把这几行加到 ~/.bashrc~/.zshrc

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

记得 source ~/.bashrc 生效。之后安装和切换版本就很简单了:

pyenv install 3.11.11
pyenv global 3.11.11   # 全局默认
pyenv local 3.11.11    # 仅当前项目

验证:python --versionpyenv versions。pyenv 可以配合 pyenv-virtualenv 管理虚拟环境,非常灵活。

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

这个方法适合需要特定编译优化、或者官方仓库里没有的版本。先装好编译套件:

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 liblzma-dev

下载源码并编译,以 3.11.11 为例:

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tgz
sudo tar xzf Python-3.11.11.tgz
cd Python-3.11.11
./configure --enable-optimizations
make -j "$(nproc)"
sudo make altinstall

这里必须强调:用 make altinstall 而不是 make install,这样就会生成 python3.11 命令,但不会覆盖系统的 python3。如果非要设为默认,还是走 update-alternatives 那条路。

验证:python3.11 --version

验证与常见问题处理

装完之后,用这几条命令确认:

python3 --version
python3.x --version   # 替换为实际版本号
# 如果用 pyenv,则用 pyenv versions

常见坑点:

  • 命令未找到:确认对应版本的包已安装,比如 python3.11;或者用 alternatives 配置默认。
  • 包安装失败:先 sudo apt update,必要时添加 deadsnakes PPA。
  • 与系统工具冲突:永远不要直接替换 /usr/bin/python3,用 alternatives 或 pyenv 隔离。
  • 多版本并存:优先用 pyenv;项目内用 python3.x -m venv .venv 创建隔离环境。

最佳实践

无论走哪条路,虚拟环境都是必须的:

python3.x -m venv .venv
source .venv/bin/activate

如果要从旧环境迁移依赖,先 pip freeze > requirements.txt,新环境直接 pip install -r requirements.txt。变更前备份关键项目,最好在测试环境先跑一遍。为每个关键项目单独锁定 Python 版本和依赖版本,能少踩很多坑。

本文转载于:https://www.yisu.com/ask/25394145.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注