Python 虚拟环境 venv 一次讲明白:隔离、创建与三个常见坑

举报
yd_223785715 发表于 2026/10/27 09:36:32 2026/10/27
【摘要】 装了两个 Python 项目,一个要 requests 2.x,一个要 3.x,pip 装来装去总冲突?问题不在 pip,在你没用虚拟环境。venv 是 Python 自带的隔离工具,一个项目一套依赖,互不干扰。 1. 为什么需要虚拟环境全局装包最大的麻烦是版本打架:项目 A 依赖库 X 1.0,项目 B 依赖库 X 2.0,全局环境只能留一个版本。虚拟环境给每个项目一个独立的 site-p...

装了两个 Python 项目,一个要 requests 2.x,一个要 3.x,pip 装来装去总冲突?问题不在 pip,在你没用虚拟环境。venv 是 Python 自带的隔离工具,一个项目一套依赖,互不干扰。

1. 为什么需要虚拟环境

全局装包最大的麻烦是版本打架:项目 A 依赖库 X 1.0,项目 B 依赖库 X 2.0,全局环境只能留一个版本。虚拟环境给每个项目一个独立的 site-packages,装什么版本自己说了算,系统 Python 干干净净。

2. 创建与激活:三条命令

# 在项目目录下创建虚拟环境(名字常用 .venv 或 venv)
python3 -m venv .venv
# 激活:Linux / macOS
source .venv/bin/activate
# 激活:Windows PowerShell
.venv\Scripts\Activate.ps1

激活后命令行前面会出现 (.venv) 标志,这时 pip install 装的包只进当前环境。退出用 deactivate,删除环境直接删掉 .venv 目录就行,干净利落。

3. 坑一:用错了 pip

激活后先确认 pip 属于当前环境:

which pip   # 应指向 .venv/bin/pip
pip --version

如果 which pip 指向系统路径,说明没激活成功就装了包——包进了全局环境,项目里还是找不到。每次装包前看一眼命令行前的 (.venv),养成习惯。

4. 坑二:把 .venv 提交进 Git

虚拟环境目录动辄几百 MB,绝不能进版本库。项目根目录建 .gitignore,第一行就写:

.venv/

同时用 pip freeze > requirements.txt 锁定依赖,别人克隆项目后 pip install -r requirements.txt 就能一键还原同样的环境。

5. 坑三:venv 与 conda 混用

conda 也有自己的环境管理,和 venv 混用容易出现 Python 解释器指向混乱:明明激活了 venv,python 却跑的是 conda 的。原则很简单:一个项目只选一种工具。新手建议先用 venv——它是标准库自带、零安装;等要用到科学计算的复杂依赖时再考虑 conda。

结语

venv 的链条很短:创建 → 激活 → 装包 → freeze 锁定。虚拟环境不是高级技巧,而是 Python 项目的默认姿势。你第一次被依赖冲突坑过吗?评论区聊聊。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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