Python 项目别再全局装包了:venv 虚拟环境入门

举报
yd_275127495 发表于 2026/10/27 06:16:16 2026/10/27
【摘要】 刚学 Python 的人常犯一个错误:所有项目都往系统全局环境里装包。项目 A 要 requests 2.x,项目 B 要 3.x,装来装去最后互相冲突,升级一个包,另一个项目就跑不起来。更糟的是,系统自带的 Python 工具本身也依赖某些包,动了全局环境,连系统工具都可能受牵连。虚拟环境就是解决这个问题的标准办法:给每个项目单独建一个隔离的包目录,互不干扰。第一步:创建一个虚拟环境Pyt...

刚学 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 这类更现代的依赖管理工具,会发现它们解决的其实是同一个问题:让每个项目的依赖互不打架。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。