Python 虚拟环境 venv 入门:创建、激活与依赖管理实践

举报
yd_221913887 发表于 2026/10/26 22:26:32 2026/10/26
【摘要】 前言在日常的 Python 开发中,不同项目往往依赖不同版本的第三方库。如果把所有包都安装到系统全局环境里,很容易出现版本冲突,例如项目 A 需要 requests 2.25,而项目 B 需要 requests 2.31。Python 自带的 venv 模块可以为每个项目创建独立的运行环境,是解决这一问题最简单、最轻量的方式。本文结合实际操作,介绍 venv 的基本用法和一些实用技巧。 一...

前言

在日常的 Python 开发中,不同项目往往依赖不同版本的第三方库。如果把所有包都安装到系统全局环境里,很容易出现版本冲突,例如项目 A 需要 requests 2.25,而项目 B 需要 requests 2.31。Python 自带的 venv 模块可以为每个项目创建独立的运行环境,是解决这一问题最简单、最轻量的方式。本文结合实际操作,介绍 venv 的基本用法和一些实用技巧。

一、什么是虚拟环境

虚拟环境本质上是一个独立的目录,里面包含一份 Python 解释器的链接以及独立的 site-packages 目录。激活虚拟环境后,pip 安装的包只会进入该目录,不会影响系统中的其他项目。删除项目时,直接删除这个目录即可,非常干净。

二、创建与激活

在 Python 3.3 及以上版本中,venv 已经内置,无需额外安装。在项目根目录执行:

python3 -m venv .venv

激活方式因系统而异:

# Linux / macOS
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1

激活成功后,命令行提示符前会出现 (.venv) 字样,此时执行 which python 可以看到解释器路径已经指向项目目录。退出环境只需执行 deactivate。

三、管理依赖

在虚拟环境中正常使用 pip 安装依赖:

pip install requests flask
pip freeze > requirements.txt

requirements.txt 记录了当前环境中所有包及其精确版本。团队成员拿到代码后,只需创建新的虚拟环境并执行 pip install -r requirements.txt,就能复现一致的开发环境。建议把 .venv 目录加入 .gitignore,只提交 requirements.txt。

四、实用技巧

  1. 指定 Python 版本:如果系统装有多个版本,可以用 python3.11 -m venv .venv 明确指定解释器。
  2. 升级 pip:新建环境后先执行 python -m pip install --upgrade pip,避免旧版 pip 安装 wheel 失败。
  3. 使用国内镜像:网络较慢时,可通过 pip config set global.index-url 配置国内镜像源,加快下载速度。
  4. IDE 集成:VS Code、PyCharm 都能自动识别项目下的 .venv 目录,选择对应解释器后即可获得正确的代码补全。
  5. 不要移动目录:虚拟环境中的脚本包含绝对路径,移动或重命名目录后可能失效,此时重新创建即可。

五、venv 与其他工具的对比

除了 venv,常见的环境管理工具还有 virtualenv、conda 和 poetry。virtualenv 功能与 venv 类似但支持更老的 Python 版本;conda 适合数据科学场景,可以管理非 Python 依赖;poetry 则把依赖管理和打包发布整合在一起。对于大多数 Web 开发和脚本项目,venv 加 requirements.txt 已经足够,而且零额外依赖,部署到云服务器或容器中也非常方便。

总结

虚拟环境是 Python 工程化的第一步。养成"一个项目一个环境"的习惯,可以有效避免依赖冲突,让项目更易于协作和部署。希望本文能帮助刚入门的同学快速上手 venv。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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