第 10 章 · 虚拟环境与 pip
本章目标:深入理解 venv 与 Conda 隔离原理;熟练 pip install / freeze / uninstall;会编写 requirements.txt;配置国内镜像与 pip config;在 py-learn 环境中为 shop-demo 与后续 blogdemo 管理依赖;了解版本号语义与常见冲突排查。
学时建议:2~3 小时(含 1 小时实操)
前置:ch01 环境安装;建议已学 ch02~ch09 任一练习项目。
10.1 为什么需要虚拟环境
| 问题 | 无隔离时 | 有虚拟环境 |
|---|---|---|
| 项目 A 要 Django 4.2 | 全局只能装一个版本 | 每项目独立 |
| 项目 B 要 Django 5.0 | 升级导致 A 损坏 | 互不影响 |
| 系统 Python | 误改系统包 | 练习在独立目录 |
系统 Python
└── 全局 site-packages(尽量不装项目依赖)
~/python-learn/
├── shop-demo/.venv/
├── blogdemo/.venv/
└── py-learn(Conda 环境名示例)
环境名请使用py-learn、web-demo等教学用名称,勿与任何生产系统同名。
10.2 venv 完整流程
cd ~/python-learn/shop-demo
python -m venv .venv
# Windows PowerShell
.venv\Scripts\Activate.ps1
# Windows CMD
.venv\Scripts\activate.bat
# macOS / Linux
source .venv/bin/activate
python --version
pip --version
which python # macOS/Linux
where python # Windows
激活后提示符前会出现 (.venv)。
| 命令 | 作用 |
|---|---|
deactivate | 退出当前 venv |
python -m venv .venv | 创建环境 |
删除 .venv 文件夹 | 彻底移除环境 |
10.3 pip 常用命令
pip install requests
pip install "Django>=4.2,<5"
pip install -r requirements.txt
pip install -e . # 可编辑安装本地包(选修)
pip list
pip show requests
pip freeze > requirements.txt
pip uninstall requests -y
| 场景 | 命令 |
|---|---|
| 升级 pip | python -m pip install --upgrade pip |
| 指定版本 | pip install package==2.31.0 |
| 仅下载不装 | pip download -r requirements.txt |
始终用当前环境的 python 调用 pip:
python -m pip install requests
避免 pip 指向错误 Python。
10.4 requirements.txt
# shop-demo 教学依赖示例
requests==2.31.0
python-dateutil>=2.8.2,<3
pip install -r requirements.txt
| 写法 | 含义 |
|---|---|
package==1.2.3 | 精确版本(生产常用) |
package>=1.0 | 最低版本 |
package~=2.0 | 兼容 2.x |
生成:
pip freeze > requirements.txt
手工维护时只列直接依赖,传递依赖由 pip 解析(可选 pip-tools 进阶)。
10.5 国内镜像与 pip config
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
| 镜像(示例) | URL |
|---|---|
| 清华 | https://pypi.tuna.tsinghua.edu.cn/simple |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
临时使用:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
配置文件位置:
| 系统 | 路径 |
|---|---|
| Windows | %APPDATA%\pip\pip.ini |
| Linux/macOS | ~/.config/pip/pip.conf |