Ubuntu系统Python安装、更新与升级指南
在Ubuntu系统中,Python的安装、更新与升级需根据场景选择合适方法。系统自带Python通常通过APT包管理器维护,而开发环境多使用pyenv或conda管理多版本,避免影响系统稳定性。
APT是Ubuntu默认包管理器,适合安装系统支持的Python版本(如Python 3.8+),操作简单且能自动处理依赖。
sudo apt update
此命令同步软件源中的最新包信息,确保后续安装/升级获取最新版本。
sudo apt upgrade
升级系统中所有已安装的可升级包,若系统自带Python(如python3)有更新,会自动升级。
若需安装特定版本,需先确保软件源包含该版本(Ubuntu 22.04+默认仓库可能包含较新版本):
sudo apt install python3.11
安装后,可通过python3.11 --version验证版本。
若系统有多个Python 3版本,可使用update-alternatives配置默认版本:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo update-alternatives --config python3
执行--config后会列出所有可用版本,输入对应编号选择默认版本。
pyenv是开发者常用工具,可在用户级别安装、切换多个Python版本,不影响系统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
这些依赖用于编译Python源码。
curl https://pyenv.run | bash
通过脚本下载并安装pyenv。
将以下内容添加到~/.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.6 # 替换为目标版本号
pyenv会自动下载并编译安装指定版本。
pyenv global 3.11.6
pyenv local 3.11.6
python --version # 显示当前pyenv管理的Python版本
pyenv versions # 列出所有已安装版本及当前激活版本
pyenv uninstall 3.10.12 # 替换为目标版本号
conda是Anaconda/Miniconda的包管理器,适合数据科学项目,可创建隔离环境并管理Python版本。
从官网下载Miniconda安装脚本(Linux版)并运行:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
按提示完成安装,重启终端。
conda create --name myenv python=3.10 # 创建名为myenv的环境,Python版本为3.10
conda activate myenv
激活后,终端提示符会显示环境名,当前环境的Python版本即为指定版本。
conda activate myenv
conda update python
conda会自动升级环境内的Python到最新兼容版本。
conda deactivate
若需要特定版本(如Python 3.12 alpha)或自定义编译选项(如启用TLS 1.3),可从源码编译。
sudo apt update
sudo apt install -y 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
访问Python官网下载目标版本源码包(如Python-3.11.6.tgz),然后解压:
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar -xf Python-3.11.6.tgz
cd Python-3.11.6
./configure --enable-optimizations
--enable-optimizations会启用PGO(Profile-Guided Optimization),提升Python运行性能,但会增加编译时间。
make -j $(nproc) # 使用所有CPU核心编译,加快进度
sudo make altinstall # 使用altinstall避免覆盖系统默认python3
altinstall会安装Python但不创建python3符号链接,避免与系统Python冲突。
python3.11 --version # 替换为目标版本号
make altinstall而非make install,防止覆盖系统关键文件。sudo apt update && sudo apt upgrade更新系统包,确保依赖兼容。venv(Python自带)或conda创建虚拟环境,避免项目间依赖冲突:python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活环境
pip install -r requirements.txt # 安装项目依赖
gnome-terminal)可能依赖特定Python版本,修改默认Python版本前需确认兼容性。