Python 虚拟环境入门:venv 从安装到日常使用
【摘要】 项目 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)