虚拟环境与项目隔离
本教程共 70 篇 · 第 30 篇 · 更新于 2026-07-22 · 约 4 分钟阅读
30. 虚拟环境与项目隔离
本节目标:掌握 venv 的创建和使用,理解虚拟环境的必要性,能独立管理项目依赖。
为什么需要虚拟环境
想象这个场景:项目 A 需要 requests 2.28,项目 B 需要 requests 2.20。如果都装到系统 Python 里,只能保留一个版本,另一个项目就炸了。
虚拟环境就是给每个项目一个独立的 Python 运行环境,互不影响。
Note虚拟环境不是虚拟机,它不复制整个操作系统。它只是创建了一个独立的 Python 解释器和 site-packages 目录,体积小、创建快。
创建虚拟环境
Python 3 内置了 venv 模块:
# 在项目目录里创建虚拟环境
python -m venv venv
这会在当前目录创建一个 venv 文件夹,里面有独立的 Python 解释器和 pip。
Tip文件夹名
venv是约定俗成的,可以改。但别用中文或带空格的名称,容易踩坑。
激活虚拟环境
创建后需要激活,让当前的命令行会话使用虚拟环境的 Python:
Windows:
venv\Scripts\activate
macOS/Linux:
source venv/bin/activate
激活后,命令行提示符前面会出现 (venv):
(venv) C:\myproject>
Warning激活只对当前终端窗口有效。新开一个窗口需要重新激活。
退出虚拟环境
deactivate
提示符前的 (venv) 消失,就回到了系统 Python。
在虚拟环境里工作
激活虚拟环境后,python 和 pip 指向的都是虚拟环境里的版本:
(venv) $ python --version
Python 3.12.0
(venv) $ pip install requests
# 安装到虚拟环境里,不影响系统环境
(venv) $ pip list
# 只显示虚拟环境里安装的包
完整的项目启动流程
# 1. 创建项目目录
mkdir myproject
cd myproject
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活(Windows)
venv\Scripts\activate
# 4. 安装依赖
pip install requests numpy pandas
# 5. 记录依赖
pip freeze > requirements.txt
# 6. 写代码,运行...
python main.py
# 7. 退出
deactivate
删除虚拟环境
虚拟环境就是一个文件夹,不需要时直接删掉:
# Windows
rmdir /s /q venv
# macOS/Linux
rm -rf venv
然后重新创建即可。
.gitignore
虚拟环境不应该提交到版本控制。在 .gitignore 里加上:
venv/
__pycache__/
*.pyc
Tip提交
requirements.txt,不提交venv/文件夹。这是 Python 项目的标准做法。
其他虚拟环境工具
| 工具 | 特点 |
|---|---|
venv | Python 内置,最简单,推荐新手使用 |
virtualenv | 第三方工具,兼容旧版 Python |
conda | Anaconda 自带,能管理非 Python 依赖(如 C 库) |
poetry | 现代化工具,自动管理依赖和虚拟环境 |
pipenv | 结合了 pip 和 virtualenv,但已不推荐新项目使用 |
初学阶段用 venv 就够了。项目复杂后再考虑 poetry 或 conda。
小结
从第 1 章到第 30 章,你已经学完了 Python 最核心的基础内容:
- 环境搭建与 IDE 配置
- 变量、数据类型、运算符
- 字符串、列表、元组、字典、集合
- 条件控制与循环
- 函数定义、参数、递归、装饰器
- 迭代器、生成器、高阶函数
- 模块、包、虚拟环境
下一步建议:用所学知识写一个小项目(比如命令行 TODO 工具、爬虫、数据处理脚本),在实践中巩固。然后可以继续学习面向对象、异常处理、文件 IO、数据库操作等进阶内容。
来源:参考了 runoob「Python3 模块」、w3cschool「Python3 模块」等,改写后所得。