第 41 课 · 阶段七 · 进阶主题
虚拟环境与包管理
不同项目要装不同的库,混在一起迟早出乱子。这一课学会用虚拟环境隔离依赖,用 requirements.txt 一键搬移项目环境。
🎯 学完本课你将掌握
- 理解虚拟环境的意义
- 创建、激活、退出虚拟环境
- 用 pip freeze 导出与安装依赖
一、为什么需要虚拟环境
项目 A 需要 pandas 1.0,项目 B 需要 pandas 2.0。装在同一台电脑的全局环境里就会冲突。虚拟环境给每个项目一个独立的 Python 环境,互不干扰。
二、创建虚拟环境
创建 venv
1# 在项目目录下创建虚拟环境(名为 venv)2python -m venv venv三、激活虚拟环境
| 系统 | 激活命令 |
|---|---|
| Windows (cmd) | venv\Scripts\activate |
| Windows (PowerShell) | venv\Scripts\Activate.ps1 |
| macOS / Linux | source venv/bin/activate |
激活后
1# 命令行前面出现 (venv) 前缀即激活成功2(venv) C:\myproject> pip install requests✅ 要点
激活后,pip install 装的库只进当前虚拟环境,不会污染全局。
四、退出虚拟环境
退出
1deactivate五、requirements.txt:依赖清单
把项目依赖写进 requirements.txt,别人克隆项目后一条命令就能复刻环境。
导出依赖
1# 在激活的虚拟环境里导出当前所有依赖2pip freeze > requirements.txtrequirements.txt 内容示例
1requests==2.32.32numpy==2.1.03pandas==2.2.2一键安装依赖
1# 新环境里安装全部依赖2pip install -r requirements.txt六、conda / venv 怎么选
- venv:Python 自带,轻量,日常够用,推荐。
- conda:Anaconda 自带,适合科学计算、环境管理更强,但更重。
- 日常写脚本:venv 足够;数据科学:也可直接用 conda。
七、常见错误与解决
常见错误与解决
| 错误现象 | 原因 / 解决方法 |
|---|---|
激活脚本无法运行(PowerShell) | 执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 允许脚本运行。 |
pip 装到了全局而不是虚拟环境 | 确认命令行前缀有 (venv);或直接用 venv\Scripts\pip install。 |
requirements.txt 装不上 | 可能是旧包已失效,用 pip install -r requirements.txt 时报错时逐个升级。 |
✍️ 小练习
给一个项目创建虚拟环境,激活后安装 requests,用 pip freeze 导出 requirements.txt,再查看它。
📌 本节小结
虚拟环境 = 每项目一个独立环境;venv 创建、activate 激活、deactivate 退出;requirements.txt 让依赖可复现。做真实项目前先建环境,是专业开发的标配。