发布于2026-07-14 阅读(0)
扫一扫,手机访问
在Ubuntu上配置Python版本控制,这事儿说简单也简单,说复杂也复杂。很多开发者刚上手时,要么被系统自带的Python版本绑死,要么在多个项目之间切换得手忙脚乱。其实核心就三件事:多版本安装、默认版本切换、项目级环境隔离。下面直接上干货。

无论你打算用系统工具还是第三方工具,先把基础依赖装上。这一步省不了,否则后面编译Python源码时会各种报错。直接跑下面这条命令,把编译工具、SSL库、压缩库什么的都装齐了:
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
注意:这条命令比较长,但值得一次性搞定,后面会省下很多麻烦。
如果你只想管理整个系统默认的python3命令指向哪个版本,update-alternatives是最直接的办法。它是Ubuntu自带的,不需要额外安装。
Ubuntu默认可能只带了一个Python版本,比如3.8或3.10。如果你想装其他版本,比如3.8和3.9共存,可以通过deadsnakes PPA来安装:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8 python3.9
# 需要什么版本就装什么版本
这个PPA很靠谱,维护了很多年,放心用。
把刚装好的Python版本注册到update-alternatives系统里,每个版本给一个优先级,数字越大优先级越高:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
运行下面这个命令,会弹出一个交互式列表,输入对应版本前面的序号就能切换:
sudo update-alternatives --config python3
选完之后,你可以在终端里敲python3 --version验证一下,是不是已经切换过来了。
如果你需要在不同项目里使用不同Python版本,甚至不同项目的依赖互不干扰,那pyenv是更灵活的选择。它只影响当前用户,不会动系统自带的Python,安全又干净。
最省事的办法是用官方一键安装脚本:
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就生效了。
想装哪个版本,直接pyenv install:
pyenv install 3.8.12
pyenv install 3.9.7
安装完成后可以用pyenv versions查看所有已安装的版本。
pyenv global 3.9.7pyenv local 3.8.12,它会生成一个.python-version文件,记录这个项目用的Python版本。以后进入这个目录,pyenv会自动切换。python --version
看看当前终端里用的是哪个版本,一目了然。
光有Python版本隔离还不够,不同项目依赖的包版本也可能冲突。这时候就需要虚拟环境出马了。
如果你在安装pyenv时已经集成了pyenv-virtualenv(上面配置里加了那条eval "$(pyenv virtualenv-init -)"),就可以直接用:
pyenv virtualenv 3.8.12 myenv # 基于Python 3.8.12创建名为myenv的虚拟环境
pyenv activate myenv # 激活
# 此时pip install的所有包都装在这个虚拟环境里
pyenv deactivate # 停用
这种方式的好处是虚拟环境跟pyenv的版本管理无缝打通,非常方便。
如果你不想用pyenv,或者项目比较简单,直接用Python自带的venv模块就行:
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活(Linux/macOS)
# 在Windows上:myenv\Scripts\activate
pip install -r requirements.txt # 安装项目依赖
deactivate # 停用
注意:venv是Python 3.3+自带的,不需要额外安装。
apt)依赖系统自带的Python版本,删了可能导致系统崩溃。老老实实留着它,别动。sudo pip install。在用户级环境(比如pyenv或venv)里,千万不要用sudo安装Python包,否则会搞乱权限,甚至破坏系统Python。记住:pip install不加sudo。requirements.txt或Pipfile把依赖版本固定下来,这样别人或者另一台机器上复现环境时,才不会出现“我本地能跑,你那里报错”的尴尬情况。总结一下:如果只是改系统默认的Python版本,用update-alternatives就够了;如果日常开发多个项目,需要灵活的版本切换和隔离,就直接上pyenv+virtualenv组合拳。按需选择,别纠结。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8