Python 虚拟环境 venv:从入门到避坑

举报
yd_268428615 发表于 2026/10/27 01:17:43 2026/10/27
【摘要】 刚开始学 Python 时,很多人习惯在系统环境里直接 pip install。项目一多就容易打架:A 项目要旧版本,B 项目又要新版本,升级一个,另一个就可能报错。虚拟环境 venv 就是给每个项目准备一个独立的小房间,里面的解释器和第三方包互不干扰,出了问题删掉重建也不心疼。 一、为什么要用 venv第一,隔离依赖,不同项目可以用不同版本的同一个库。第二,干净可复现,依赖写进 requi...

刚开始学 Python 时,很多人习惯在系统环境里直接 pip install。项目一多就容易打架:A 项目要旧版本,B 项目又要新版本,升级一个,另一个就可能报错。虚拟环境 venv 就是给每个项目准备一个独立的小房间,里面的解释器和第三方包互不干扰,出了问题删掉重建也不心疼。

一、为什么要用 venv

第一,隔离依赖,不同项目可以用不同版本的同一个库。第二,干净可复现,依赖写进 requirements.txt,换电脑也能照单重装。第三,风险可控,试验新库装错了也只影响当前环境,不会污染系统 Python。第四,方便清理,不再需要的环境直接删除文件夹即可。

二、创建、激活与退出

在项目根目录创建环境,名字常用 .venv:

python -m venv .venv

Windows 上用 PowerShell 激活:

.venv\Scripts\Activate.ps1

macOS 和 Linux 上用:

source .venv/bin/activate

激活后命令行前面会出现 (.venv) 提示,此时安装的包都只进当前环境。用完执行 deactivate 退出。

三、最容易踩的五个坑

第一,忘记激活就装包,包会装进系统环境,换环境后找不到。第二,用错解释器,执行前先确认 python 的路径和版本。第三,把 .venv 提交进代码仓库,环境文件夹应当放进 .gitignore,只提交代码和依赖清单。第四,新开终端要重新激活,激活只对当前终端会话有效。第五,虚拟环境只隔离 Python 包,不能替代容器对系统级依赖的隔离。

四、依赖管理好习惯

装好包后及时冻结版本:

pip freeze > requirements.txt

新环境里先创建并激活,再执行 pip install -r requirements.txt。升级单个包时先在虚拟环境里试验,通过测试再更新冻结文件。

五、快速自查清单

创建前确认版本,激活后看提示符和解释器路径,装包后用 pip list 核对,提交前确认 .venv 没有被误提交。把这几步做成习惯,依赖冲突会少很多,项目也更容易交给别人运行。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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