Python 项目别再全局装包了:venv 虚拟环境入门
刚学 Python 的人常犯一个错误:所有项目都往系统全局环境里装包。项目 A 要 requests 2.x,项目 B 要 3.x,装来装去最后互相冲突,升级一个包,另一个项目就跑不起来。更糟的是,系统自带的 Python 工具本身也依赖某些包,动了全局环境,连系统工具都可能受牵连。虚拟环境就是解决这个问题的标准办法:给每个项目单独建一个隔离的包目录,互不干扰。
第一步:创建一个虚拟环境
Python 3 自带 venv,不用再装第三方工具。在项目目录里执行:
python3 -m venv .venv
这会在当前目录生成一个 .venv 文件夹,里面有一套独立的 Python 解释器和 pip。注意不要把 .venv 提交到代码仓库,在 .gitignore 里加上一行 .venv 即可。目录名用 .venv 是约定俗成的写法,团队成员一眼就知道这是虚拟环境。
第二步:激活它
虚拟环境建好不会自动生效,需要先激活。Linux 和 macOS 上执行:
source .venv/bin/activate
激活成功后,终端提示符前面会出现 (.venv) 字样,表示此后敲 python 和 pip 用的都是这个隔离环境。Windows 上则运行 .venv\Scripts\activate。激活只对当前终端窗口有效,关掉窗口或新开一个终端,都要重新激活,这也是新手最容易忘记的一步。
第三步:在隔离环境里装包
激活后再装包,就只会装进当前项目的 .venv,不会污染全局:
pip install requests
装完用 pip list 就能看到这个项目独有的包清单。项目做完或要换电脑时,把依赖导出成文件:
pip freeze > requirements.txt
别人拿到项目后,先建虚拟环境、激活,再执行 pip install -r requirements.txt,就能还原出一模一样的依赖版本,告别“在我电脑上能跑”的尴尬。
第四步:退出与删除
用完退出很简单,执行 deactivate 即可,提示符前面的 (.venv) 消失,回到系统环境。虚拟环境本质上就是一个普通文件夹,不想要了直接删掉 .venv 目录,再重建一个,干净利落,不会留下残留配置。
几个常见坑值得提醒:一是激活前装包,包还是进了全局,装完发现 pip list 里没有,先确认提示符有没有 (.venv);二是虚拟环境目录不要挪位置,里面的脚本写死了创建时的路径,移动后激活脚本可能失效,重建一个更快;三是不同项目共用一个虚拟环境等于没隔离,一个项目一个环境才是正确姿势。
养成“新建项目先建虚拟环境”的习惯,成本不过两条命令,换来的却是依赖清晰、项目可复现、系统环境干净。等这套流程熟练了,再去了解 poetry、uv 这类更现代的依赖管理工具,会发现它们解决的其实是同一个问题:让每个项目的依赖互不打架。
- 点赞
- 收藏
- 关注作者
评论(0)