在 Ubuntu 上安装 Python 并不难,真正影响后续开发体验的,是工具链是否一次配全:解释器能不能直接用、依赖包能不能顺利装、项目之间会不会互相冲突。下面按实际开发流程,把 Ubuntu 下常见的 Python 环境搭建步骤梳理清楚,读完后你可以判断自己是只需要基础环境,还是已经到了要引入虚拟环境和多版本管理的阶段。
安装 Python 与核心开发工具
如果你只是确认系统里有没有 Python,很多 Ubuntu 版本已经默认带有 Python 3;但要进入实际开发,通常还需要把 pip、头文件和编译工具链一并补齐。这样后面安装带有 C 扩展的包时,才不容易在构建阶段报错。

先更新软件包列表
安装前先同步软件源信息,避免拿到过旧的软件包索引:
sudo apt update
安装 Python 3 并确认版本
Ubuntu 20.04 及以上版本通常默认包含 Python 3。如果当前系统没有,或者你希望重新确认安装状态,可以直接执行:
sudo apt install python3
安装完成后,使用下面的命令检查是否可用:
python3 --version
正常情况下会输出类似 Python 3.10.12 这样的版本号。
补齐开发常用组件
完整的 Python 开发环境一般还需要以下三部分:

python3-pip:Python 包管理器,用来安装第三方库。python3-dev:提供 Python 头文件,很多需要本地编译的包会依赖它。build-essential:包含gcc、make等基础编译工具。
可以分别安装:
sudo apt install python3-pip
sudo apt install python3-dev
sudo apt install build-essential
其中,pip 在不少 Ubuntu 环境里已经存在,可以先执行 pip3 --version 检查,再决定是否补装。
这一步的意义很直接:如果后面你要安装 numpy、pandas 这类可能涉及编译过程的包,没有 python3-dev 和 build-essential,安装过程往往会卡在构建依赖上。
用 venv 隔离项目依赖
在 Ubuntu 上写 Python,最容易踩的坑不是“装不上”,而是“不同项目互相影响”。同一台机器里,A 项目需要一个版本的库,B 项目又依赖另一个版本,如果都装到系统环境中,后续排查会非常麻烦。
因此更稳妥的做法,是给每个项目创建独立虚拟环境。Ubuntu 下最常见的方式就是使用 Python 3 自带的 venv 模块。
确认 venv 模块可用
多数 Ubuntu 版本已经带有 venv,如果当前环境没有,可以安装:
sudo apt install python3-venv
创建虚拟环境
进入项目目录后,执行以下命令创建一个独立环境。原文示例使用的是 myprojectenv:
python3 -m venv myprojectenv
执行后,当前目录下会生成一个新的虚拟环境目录,里面包含该环境专用的 Python、pip 和相关脚本。
激活与退出
创建完成后,通过下面的命令激活:
source myprojectenv/bin/activate
激活后,终端提示符前通常会出现类似 (myprojectenv) 的标记。这意味着当前安装的包会进入这个隔离环境,而不是系统全局环境。
完成开发或安装操作后,可以通过以下命令退出:
deactivate
如果你只写临时脚本,系统环境可能也够用;但只要项目需要长期维护、团队协作或频繁安装不同依赖,虚拟环境几乎就是默认选项。
按场景安装常用 Python 开发库
基础环境准备好以后,下一步就是根据项目类型安装第三方库。这里不需要一次性全装,而是按你的开发方向选择。原文给出了几组常见组合,适合直接作为起点。
数据处理与分析
如果你主要做数据清洗、分析和绘图,可以安装:
pip install numpy pandas matplotlib seaborn
这组里,numpy 和 pandas 是数据处理基础,matplotlib 与 seaborn 常用于可视化。
Web 开发
面向 Web 场景时,可以根据框架偏好选择:
pip install flask django fastapi
Flask 更轻量,Django 更完整,FastAPI 则常见于接口服务和现代异步应用。
机器学习与 AI
如果你的项目涉及模型训练或推理,常见起步依赖包括:
pip install tensorflow torch scikit-learn
这几类库安装体积和依赖都相对更大,因此前面提到的编译环境、虚拟环境就更重要。
代码质量与测试工具
除了业务库,开发阶段还建议补上格式化、检查和测试工具:
代码格式化与静态检查:
pip install black flake8
单元测试框架:
pip install pytest
如果你希望项目在多人协作中更稳定,这些工具的价值往往不低于业务依赖本身。
用 requirements.txt 固定和复现依赖
环境能跑起来只是第一步,能不能在新机器上快速复现,才决定这个环境是否真正可维护。Python 项目里最常见的做法,就是把当前虚拟环境中的依赖导出到 requirements.txt。
导出当前依赖
在虚拟环境中执行:
pip freeze > requirements.txt
这条命令会把当前环境中已经安装的包及其版本写入文件,便于后续共享和部署。
在新环境中一键安装
当你换了一台机器、重建环境,或者其他人接手项目时,可以直接使用:
pip install -r requirements.txt
这样就能按文件里的版本列表一次性安装依赖,减少“我这边能跑,你那边不行”的环境差异问题。
对个人项目来说,这一步能省下重复配置时间;对团队项目来说,它基本是必须保留的基础文件之一。
需要多版本时,再引入 pyenv
如果你只维护一个项目,系统自带 Python 加上 venv 往往已经够用。但只要你开始面对版本兼容测试,或者不同项目明确要求不同 Python 版本,单一系统解释器就会逐渐不够灵活,这时可以考虑 pyenv。

安装 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
这样当前 shell 才会加载 pyenv。
安装指定 Python 版本
例如安装 Python 3.9.7:
pyenv install 3.9.7
设置全局或项目局部版本
如果希望所有终端默认都使用这个版本,可以设置全局版本:
pyenv global 3.9.7
如果只是某个项目需要该版本,则更适合使用局部设置:
pyenv local 3.9.7
前者影响范围更大,后者只在当前目录下生效,更适合项目级管理。
验证是否切换成功
最后执行:
python --version
若输出为指定版本,例如 Python 3.9.7,说明切换已经生效。
简单理解,venv 解决的是“项目依赖隔离”,而 pyenv 解决的是“Python 版本切换”。前者更适合大多数开发者作为默认配置,后者则在多版本并行时特别有用。
Ubuntu 下搭建 Python 开发环境的最小可用组合
如果你只想快速形成一套可工作的 Ubuntu Python 开发环境,可以按这个顺序理解:
- 先装好
python3、python3-pip、python3-dev、build-essential。 - 每个项目尽量使用
python3 -m venv创建独立环境。 - 根据场景安装业务库和开发工具,例如
black、flake8、pytest。 - 用
pip freeze > requirements.txt固定依赖。 - 只有在多个 Python 版本并存时,再引入
pyenv。
按这个思路搭建后,不管是运行简单脚本,还是维护带有复杂依赖的项目,环境都会清晰得多,后续迁移和协作成本也更可控。







