用 Python venv 把项目依赖管干净:比全局 pip 更稳的做法

举报
yd_235948304 发表于 2026/10/25 10:54:08 2026/10/25
【摘要】 用 venv 给每个 Python 项目隔离依赖,避免全局 pip 互相踩脚。文中给出创建、激活、冻结 requirements.txt,以及在华为云 ECS 上复现环境的做法。

很多人第一次用 Python 写脚本或小服务,习惯直接 pip install 装到系统环境。项目一多就容易踩坑:A 项目要 requests 2.28,B 项目要 2.31;升级一个库,另一个脚本突然报错。虚拟环境(venv)用「每个项目一套独立依赖」解决这件事,也是上云、做 CI、写 Dockerfile 前最值得养成的习惯。

为什么不要往系统 Python 里乱装包

系统自带的 Python 常被发行版工具依赖。全局装包可能:1) 覆盖系统库版本;2) 不同项目互相踩脚;3) 迁移到华为云 ECS 或容器时很难复现环境。venv 在项目目录生成隔离的解释器和 site-packages,激活后再 pip,包只进这个目录。

五分钟跑通

假设已安装 Python 3.10+。进入项目目录:

cd ~/my-app
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install flask==3.0.3
pip freeze > requirements.txt

新建环境复现:

python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

和华为云实践的关系

在 ECS、CodeArts 或沙箱里跑服务时,把 .venv 和 requirements.txt 一起纳入部署习惯,能减少「本机能跑、云上不行」。别把 .venv 目录提交进 Git,只提交 requirements.txt。

小结

venv 成本很低,却能把依赖冲突挡在门外。养成「一项目一环境」后,再谈 Docker 多阶段构建会顺很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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