Python 虚拟环境与依赖管理:venv + pip 实战避坑
刚学 Python 的人几乎都踩过同一个坑:在 A 项目装好的库,换到 B 项目却提示找不到;升级某个库后,旧项目突然跑不起来。问题往往不在代码,而在环境:所有项目共用同一套全局解释器,依赖互相打架。venv 加 pip 就是自带的解法:一个项目一个隔离环境。
一、venv 隔离了什么
venv 会在项目下建一个独立的解释器副本和包目录。激活后,python 和 pip 都指向它,装的包只进当前环境,不污染全局。退出后全局依旧干净。
二、创建与激活
项目根目录执行 python -m venv .venv。Windows 用 .venv\Scripts\activate,macOS 和 Linux 用 source .venv/bin/activate,成功后提示符前会出现 (.venv)。先用 python --version 确认版本,必要时用 python3.12 -m venv .venv 指定版本。退出用 deactivate,重建时直接删除 .venv 目录即可。
三、pip 的三个习惯
第一,激活后再装包,先升级 pip:python -m pip install --upgrade pip。第二,用 pip install -r requirements.txt 复现环境,别凭记忆逐个装。第三,装完就冻结依赖:pip freeze > requirements.txt。但 freeze 会把间接依赖也写进去,更稳妥的是手写只列直接依赖的文件,如 requests==2.32.3,让 pip 自动解析其余部分。
四、五个常见坑
一是没激活就装包,包进了全局,项目里找不到:装前先看有没有 (.venv)。二是把 .venv 提交进 Git:它体积大且与系统绑定,一定要在 .gitignore 加 .venv/。三是下载慢或超时:临时加镜像源,如 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests。四是依赖冲突就反复重装:先用 pip check 定位,再调整版本范围。五是用 sudo pip install:会改动全局环境,普通项目一律用 venv。
五、推荐工作流
新建项目按这个顺序:确认版本、创建并激活 .venv、升级 pip、安装依赖并写入 requirements.txt、把 .venv/ 加入 .gitignore。换电脑时,对方只需建好环境并执行 pip install -r requirements.txt。
虚拟环境是 Python 项目的底线配置。先把环境管好,依赖问题就解决了一大半。
- 点赞
- 收藏
- 关注作者
评论(0)