Ubuntu 下 Python 多版本共存的实用方案
方案一 使用 pyenv 管理多版本(推荐)
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 gitcurl https://pyenv.run | bash~/.bashrc 末尾追加并生效:export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# 可选:集成虚拟环境插件
eval "$(pyenv virtualenv-init -)"
source ~/.bashrcpyenv install --listpyenv install 3.11.9pyenv global 3.11.9pyenv local 3.10.12pyenv shell 3.9.18python -V、which python、pyenv versionspyenv which python 可查看实际调用的解释器路径。pyenv virtualenv 为每个项目创建隔离环境,避免包冲突。方案二 使用 deadsnakes PPA 安装多版本 Python3
sudo add-apt-repository ppa:deadsnakes/ppasudo apt updatesudo apt install python3.12 python3.12-venv python3.12-devpython3.12 -Vpython3.12 -m venv .venv && source .venv/bin/activatepython3.x 命令区分,互不干扰。方案三 使用 update-alternatives 切换系统默认 python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1sudo update-alternatives --config pythonpythonsudo update-alternatives --list pythonpython -Vpython 可能影响系统工具链,生产环境谨慎操作;更推荐在用户态用 pyenv 或项目级 venv。方案四 使用 Docker 隔离不同版本
docker run -it --rm python:3.8 bashdocker run -it --rm python:3.9 bash最佳实践与常见问题
python3.x -m venv .venv && source .venv/bin/activatepyenv virtualenv <version> <name> && pyenv activate <name>python3.12 -m pip install <pkg>(明确指向解释器)python3.12-venv),再创建虚拟环境使用 python -m pip/usr/bin/python;使用 python3.x 命令或用户态工具(pyenv)切换版本PATH 与 shell 配置已加载(如 source ~/.bashrc)python -m pip 明确目标解释器