文章目录

Python 虚拟环境:venv 与 pipenv 对比

发布于 2026-04-14 13:20:50 · 浏览 33 次 · 评论 0 条

Python 虚拟环境:venv 与 pipenv 对比

安装 Python 虚拟环境是每个 Python 开发者的必备技能。虚拟环境能将项目依赖隔离,避免版本冲突,使项目保持整洁和可复现性。本文对比 Python 内置的 venv 和第三方工具 pipenv,帮助你选择最适合的工具。

venv:Python 内置解决方案

创建 虚拟环境打开终端,导航 到项目目录,运行 python -m venv myenv(Windows)或 python3 -m venv myenv(macOS/Linux),其中 myenv 是环境名称。

激活 虚拟环境 Windows 中执行 myenv\Scripts\activate,macOS/Linux 中输入 source myenv/bin/activate。激活后,命令行前会出现 (myenv) 标识。

安装 包激活环境后,使用 pip install package_name 安装 所需包。注意 所有包都安装在虚拟环境中,不影响全局 Python 环境。

退出 虚拟环境 运行 deactivate 命令 即可退出环境。

生成 需求列表 执行 pip freeze > requirements.txt 保存 当前环境的包列表。在新环境中运行 pip install -r requirements.txt 复现 相同依赖。

pipenv:整合 pip 与 virtualenv 的解决方案

安装 pipenv 首先 需要全局安装 pipenv。运行 pip install pipenv 完成安装

创建 项目 进入 项目目录,执行 pipenv install 创建 虚拟环境。首次运行 会自动创建 PipfilePipfile.lock 文件。

激活 环境 输入 pipenv shell 进入 虚拟环境。注意 此时命令行也会显示虚拟环境名称。

安装使用 pipenv install package_name 安装 包。生产环境依赖 使用 pipenv install package_name --dev 区分开发依赖。

生成 锁文件 执行 pipenv lock 生成 Pipfile.lock确保 依赖版本精确。

使用 锁文件 在其他环境中运行 pipenv install --deploy 精确复现 所有依赖。

退出 环境 输入 exit按下 Ctrl + D 退出 pipenv 环境。


venv 与 pipenv 对比

功能对比

特性 venv pipenv
内置支持 Python 3.3+ 内置 需额外安装
包管理 使用 pip 使用 pip
需求文件 requirements.txt Pipfile 和 Pipfile.lock
依赖版本 精确依赖需要手动处理 自动生成锁定文件
开发依赖 无内置区分 支持 --dev 标记
环境管理 手动创建和激活 自动化程度高
可视化 提供图形化依赖树

使用体验

venv 提供基础功能,适合 简单项目或新手开发者。学习曲线 平缓,理解 不复杂。

pipenv 提供完整 的工作流,自动处理 多个任务,减少 手动步骤。适合 中大型项目或团队协作。

项目协作

venv 依赖 requirements.txt 记录 依赖列表。版本冲突手动 解决。

pipenv 使用 Pipfile.lock 锁定 依赖版本,确保 团队成员使用相同 依赖版本。

最佳实践场景

选择 venv 当

  • 项目简单,依赖较少
  • Python 版本较旧(低于 3.3)
  • 团队偏好使用 pip 和 requirements.txt
  • 追求最小化工具链

选择 pipenv 当

  • 项目复杂,依赖较多
  • 需要精确版本控制
  • 需要区分开发和生产环境依赖
  • 团队协作要求一致性高

选择建议

初学者从 venv 开始理解 基本概念后再尝试 pipenv。

小型项目 venv 足够 使用,简单直接

中大型项目 pipenv 提供 更好体验减少 版本管理问题。

团队协作 pipenv 确保 所有成员使用 相同依赖版本,减少 "在我机器上可以运行"问题。

混合使用 某些项目可组合使用 venv 和 pipenv,根据 团队偏好项目需求 调整。

关键点选择 适合团队和项目需求的方法,保持 一致性,避免 版本混乱。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文