Python 虚拟环境入门:venv 从安装到日常使用

举报
yd_299631796 发表于 2026/10/30 10:38:27 2026/10/30
【摘要】 项目 A 要 requests 2.25、项目 B 要 2.31怎么办?这篇讲清 Python 官方 venv 的创建、激活、依赖固化(requirements.txt)与 VS Code 解释器配置,附 macOS ensurepip 报错的解法,帮你迈过 Python 工程化第一课。

为什么需要虚拟环境

刚学 Python 时几乎人人遇到过这样的崩溃:项目 A 依赖 requests 2.25,项目 B 要 2.31,装完 B 回头跑 A 直接报错。或者更隐蔽的——升级了某个全局包,三个月前的老项目突然跑不动了。这些问题的根源都是:所有项目共用同一套全局包。

虚拟环境(virtual environment)就是解决这个问题的:给每个项目一套独立的 Python 包目录,互不干扰。Python 3.3 之后官方自带 venv 模块,不需要再安装 virtualenv。

三步创建并激活

进入项目目录后,两条命令就够了:

# 创建虚拟环境(会在当前目录生成 .venv 文件夹)
python3 -m venv .venv

# 激活(macOS / Linux)
source .venv/bin/activate

# 激活(Windows PowerShell)
.venv\Scripts\Activate.ps1

激活成功后命令行前面会出现 (.venf) 或 (.venv) 前缀。此时用 pip install 装的所有包都只进这个目录,与全局无关。退出用 deactivate 命令。

日常使用建议

  • 一个项目一个环境:环境目录建议就叫 .venv,并加进 .gitignore,不要提交到仓库。
  • 依赖要固化:装完依赖后执行 pip freeze > requirements.txt,别人拿到代码一条 pip install -r requirements.txt 就能复现环境。
  • VS Code 记得选解释器:打开项目后按 Cmd/Ctrl+Shift+P,执行 Python: Select Interpreter,选中 .venv 里的解释器,否则编辑器还是用全局环境提示报错。
  • 环境坏了就删掉重建:虚拟环境本来就该是一次性的,依赖装乱了的成本远低于排查时间。

一个容易踩的坑

在 macOS 上如果用 python3 -m venv .venv 报错 ensurepip is not available,多半是系统 Python 缺少 ensurepip 组件。用 brew install python 重装一份完整的 Python 再试即可;Windows 上则需要在安装 Python 时勾选 pip 组件。

小结

venv 是 Python 工程化的第一课:先隔离,再开发。花两分钟建个 .venv,能省掉以后无数个"在我电脑上明明能跑"的深夜。配合 requirements.txt,你的项目才算真正可以交给别人运行。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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