it编程 > 前端脚本 > Python

一文详解Python虚拟环境venv创建与隔离项目依赖

4人参与 2026-08-03 Python

一、开篇:每个项目一个"干净的房间"

想象你有两个项目:项目a需要django 3.2,项目b需要django 4.2。如果你把所有包都装在全局python环境中,两个项目就会打架——这就是"依赖冲突"。

虚拟环境解决了这个问题:

# 不用虚拟环境(全局安装)
# pip install django==3.2    # 项目a需要
# pip install django==4.2    # 项目b需要——冲突!
# ✅ 用虚拟环境(各自独立)
# 项目a有自己的虚拟环境——里面装django 3.2
# 项目b有自己的虚拟环境——里面装django 4.2
# 互不干扰!

虚拟环境是python项目的标配。它给每个项目一个"干净的房间"——隔离的python解释器和pip包。venv是python 3.3+内置的虚拟环境工具,不需要安装任何额外的包。

二、创建和使用虚拟环境

2.1 基本操作流程

# === windows ===
# 1. 创建虚拟环境(在项目目录下)
cd my_project
python -m venv venv
# 这会在当前目录创建venv文件夹
# 2. 激活虚拟环境
venv\scripts\activate
# 激活后,终端前面会显示 (venv)
# 3. 确认使用的是虚拟环境中的python
where python     # windows
# 应该显示 venv\scripts\python.exe
# 4. 安装依赖
pip install requests flask
# 5. 导出依赖
pip freeze > requirements.txt
# 6. 退出虚拟环境
deactivate
# === linux/mac ===
# python3 -m venv venv
# source venv/bin/activate
# deactivate

2.2 虚拟环境的目录结构

my_project/
├── venv/                    # 虚拟环境目录(一般加入.gitignore)
│   ├── scripts/             # (windows) python解释器、pip、activate
│   │   ├── python.exe
│   │   ├── pip.exe
│   │   └── activate
│   ├── bin/                 # (linux/mac) 同上
│   ├── lib/                 # 安装的包
│   │   └── site-packages/
│   └── pyvenv.cfg           # 配置文件
├── src/                     # 源代码
├── requirements.txt         # 依赖列表
└── readme.md

2.3 venv的常用参数

# 创建虚拟环境时可以指定选项

# 指定python版本(需要系统中已安装)
python3.11 -m venv venv

# 不安装pip(精简环境)
python -m venv venv --without-pip

# 系统site-packages对虚拟环境可见
python -m venv venv --system-site-packages

# 创建前清空目标目录
python -m venv venv --clear

# 升级虚拟环境中的核心依赖(pip, setuptools)
python -m venv venv --upgrade-deps

三、ide集成

3.1 vs code中使用虚拟环境

# vs code会自动检测项目中的虚拟环境

# 1. 创建虚拟环境
python -m venv venv

# 2. vs code中按 ctrl+shift+p
# 输入 "python: select interpreter"
# 选择 venv/scripts/python.exe(windows)
# 或 venv/bin/python(linux/mac)

# 3. 新终端自动激活
# vs code打开新终端时会自动执行 activate

# 4. settings.json中设置默认虚拟环境路径
{
    "python.venvpath": "venv",
    "python.terminal.activateenvironment": true
}

3.2 pycharm中使用虚拟环境

# pycharm创建项目时可以选择使用虚拟环境

# 如果项目已有venv:
# file → settings → project → python interpreter
# 齿轮图标 → add → existing environment
# 选择 venv/scripts/python.exe

四、最佳实践

4.1 虚拟环境管理

# ✅ 习惯一:每个项目一个虚拟环境
# 不要多个项目共享一个虚拟环境

# ✅ 习惯二:虚拟环境目录命名为 venv 或 .venv
# 统一命名,团队成员一看就知道

# ✅ 习惯三:虚拟环境目录加入.gitignore
# echo "venv/" >> .gitignore
# echo ".venv/" >> .gitignore
# 不在git中提交虚拟环境!

# ✅ 习惯四:维护requirements.txt
# 每次安装新包后更新
pip freeze > requirements.txt

# ✅ 习惯五:readme中说明环境搭建步骤
"""
## 环境搭建

python -m venv venv

# windows:
venv\\scripts\\activate

# linux/mac:
source venv/bin/activate

pip install -r requirements.txt
"""

4.2 完整的项目初始化流程

# 1. 创建项目目录
mkdir my_new_project
cd my_new_project

# 2. 初始化git
git init

# 3. 创建虚拟环境
python -m venv venv

# 4. 激活虚拟环境
# windows: venv\scripts\activate
# linux/mac: source venv/bin/activate

# 5. 升级pip
python -m pip install --upgrade pip

# 6. 安装依赖
pip install flask sqlalchemy

# 7. 导出依赖
pip freeze > requirements.txt

# 8. 创建.gitignore
echo "venv/" >> .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
echo ".env" >> .gitignore

# 9. 初始化项目代码
mkdir src
# 开始写代码...

五、其他虚拟环境工具

# virtualenv —— venv的前身,更多功能
# pip install virtualenv
# virtualenv venv

# pipenv —— pipfile + 虚拟环境
# pip install pipenv
# pipenv install requests  # 自动创建/管理虚拟环境

# poetry —— 现代化的依赖管理
# pip install poetry
# poetry init
# poetry add requests

# conda —— anaconda生态,适合数据科学
# conda create -n myenv python=3.11

# 💡 选型建议:
# 日常开发 → venv(内置,够用)
# 复杂依赖管理 → poetry
# 数据科学 → conda
# 简单项目 → venv

六、总结

虚拟环境是python项目开发的基本功。它让每个项目拥有独立的python环境,从根本上避免依赖冲突。

核心要点:

  1. 创建python -m venv venv
  2. 激活:windows用venv\scripts\activate,linux/mac用source venv/bin/activate
  3. 退出deactivate
  4. 导出依赖pip freeze > requirements.txt
  5. 虚拟环境不提交到git——加入.gitignore

一句话:开始任何python项目的第一步——创建虚拟环境。这是专业开发者的肌肉记忆。

以上就是一文详解python虚拟环境venv创建与隔离项目依赖的详细内容,更多关于python虚拟环境venv创建与使用的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

Python内置模块之datetime日期时间处理详解

08-03

Python中pip包管理工具的安装与使用全指南(新手必看)

08-03

Python实现PDF到HTML的转换(附代码详解)

08-03

Python自定义模块的创建与调用方法

08-03

Python数值类型(int、float、complex与bool)的使用小结

08-03

Python实现在Excel单元格中添加迷你图的完整教学

08-03

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论