在Ubuntu上配置Python环境,正确做法是用apt安装系统级Python,再用venv或pyenv管理项目级环境,避免直接操作默认解释器。很多初学者一上手就卸载系统自带Python,结果把桌面环境搞崩,下面按实际使用场景,从基础安装到多版本管理,一步步讲清楚。
为什么你在Ubuntu上配置Python环境总出问题?
Ubuntu默认预装Python,但系统组件依赖它,不能随便动,比如python3被apt、gnome-terminal等程序引用,如果你手动替换或删除,会导致终端打不开、软件管理器失灵,行业共识认为,系统Python只负责系统运行,你的项目代码必须隔离在虚拟环境里。
另一个常见坑是pip安装权限,直接执行pip install xxx会装到系统目录,不仅需要sudo,还可能覆盖系统依赖,正确思路是:apt负责装Python本体,pip负责装项目包,venv负责隔离,三者各司其职,就不会乱。
Ubuntu配置Python环境前要做的三件事
动手前花两分钟检查现状,能省掉后面一堆麻烦。
检查系统当前Python版本
打开终端,执行:
python3 --version
多数Ubuntu 22.04自带Python 3.10,Ubuntu 24.04自带Python 3.12,同时检查pip:
pip3 --version
如果提示找不到pip,别急,下一步安装。
更新软件源与安装必备工具
sudo apt update sudo apt upgrade -y sudo apt install -y curl wget software-properties-common
software-properties-common提供add-apt-repository命令,后续安装特定版本Python要用到。
确认系统Python路径
which python3
通常输出/usr/bin/python3,记住这个路径,别去改动它。
在Ubuntu上用apt安装Python的详细步骤
这是最稳妥的安装方式,适合大多数场景,很多朋友搜“ubuntu安装python3命令”,实际操作就三条。

安装python3和pip
sudo apt install -y python3 python3-pip
安装完成后验证:
python3 --version pip3 --version
如果系统里没有Python,apt会自动拉到当前Ubuntu版本对应的默认版本,注意,不要用python代替python3,Ubuntu里python命令默认指向Python 2(旧版)或未设置,容易混淆。
额外安装开发工具包
编译某些Python包需要头文件:
sudo apt install -y build-essential python3-dev
python3-dev提供Python.h,安装pandas、numpy等科学计算库时必备。
用venv隔离项目环境,避免依赖冲突
直接在全局装包,两个项目可能需要不同版本的Django,就会互相打架,venv是Python自带工具,专门解决这个问题,很多人问“ubuntu python虚拟环境怎么用”,核心就三步。
创建和激活虚拟环境
进入项目目录:
cd ~/myproject python3 -m venv venv
这会生成一个venv文件夹,激活它:
source venv/bin/activate
激活后终端提示符前面会出现(venv),说明已经进入隔离环境,输入which python3,路径会变成~/myproject/venv/bin/python3。
安装项目依赖
在激活状态下,直接用pip安装:
pip install flask
装完自动隔离在虚拟环境里,退出环境用deactivate,删除环境只需要删除venv文件夹,干净利落。
写依赖清单
pip freeze > requirements.txt
其他电脑上执行pip install -r requirements.txt即可快速复现环境。
使用pyenv管理多个Python版本

有时项目要求Python 3.8,系统却是3.10,这时候apt装不了旧版本,编译太麻烦,pyenv就是答案,它能让你在用户级别安装任意Python版本,并通过pyenv local自动切换。
安装pyenv
先安装依赖:
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
用官方安装脚本:
curl https://pyenv.run | bash
安装后根据终端提示,把以下内容写入~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)"
重新加载配置:
source ~/.bashrc
安装指定Python版本
查看可安装的版本:
pyenv install --list
安装3.8.18为例:
pyenv install 3.8.18
这个过程会编译,需要几分钟,安装完成后设置项目目录版本:
cd ~/myproject pyenv local 3.8.18
此时该目录下的python3 --version显示3.8.18,其他目录不受影响,pyenv同样支持虚拟环境插件,但一般用pyenv-virtualenv,这里不展开。
实测对比:apt、venv、pyenv三种方案怎么选
| 方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| apt安装系统Python | 只需要一个版本,跑简单脚本 | 系统集成好,安装快 | 版本固定,不能多版本共存 |
| venv虚拟环境 | 同一版本下隔离依赖 | 轻量,内置,无需额外安装 | 不能切换Python解释器版本 |
| pyenv多版本管理 | 需要不同Python版本,或测试兼容性 | 可任意切换版本,不影响系统 | 初次编译耗时,需要磁盘空间 |
普通人用apt+venv足够,前端转后端或做数据科学,如果遇到C扩展包编译问题,直接切到pyenv装对应版本更省心。
常见问题:Ubuntu配置Python环境时pip报错怎么办?
解决externally-managed-environment错误
Ubuntu 23.04及之后版本,pip默认拒绝全局安装包,报错error: externally-managed-environment,原因就是前面说的,不想让你污染系统Python,解决办法有两个:
- 用venv(推荐,前面讲过)。
- 如果确实想全局装,用
pip install --break-system-packages,但后果自负。
换用国内镜像源
下载慢或者超时,可以临时指定源:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
永久设置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
注意,用的镜像源要选择可信的,简米云、豆瓣也都有。
Q&A:ubuntu配置python环境常见疑问
问题1:Ubuntu 24.04能用apt直接装Python 3.12吗?
能,Ubuntu 24.04默认仓库自带Python 3.12,执行sudo apt install python3即可,如果你的版本是20.04,默认是Python 3.8,需要添加deadsnakes PPA才能装新版。
问题2:conda和venv在Ubuntu上选哪个?
做数据科学、机器学习,安装TensorFlow或PyTorch时,conda能处理非Python依赖(如CUDA库),更省心,普通Web开发或自动化脚本,venv已经够用,且不引入额外工具,记住一点:conda是环境+包管理器,venv只做环境隔离,两者不冲突,但别在一个项目里混用。
问题3:配置Python环境后终端输入python还是python3?
Ubuntu系统里python默认没有指向,只有python3,如果你想用python命令直接进入3.x,可以安装python-is-python3这个包,执行sudo apt install python-is-python3后,python就等价于python3。

