3. 正确地用 pip 装包
这是什么:pip = Python 的官方包安装器,本章讲它在虚拟环境里的正确用法:装在环境里、看得见装了什么、卸得干净。
为什么用:pip 最大的坑是没激活环境就执行 pip,包装全进了全局,项目的依赖清单跟着全乱。不改习惯,前面那套隔离就白做了。
如何用:本章先用 pip -V 判断自己在哪个环境,再依次练装包、查看、卸载、升级和换镜像源。
3.1 先判断「我在哪个环境」
pip 最大的坑:没激活环境就执行了 pip,包装进全局了。两保险:
- 看提示符有没有
(.venv)(最直观) - 不确定就问 pip:
pip -V
你会看到 pip 自报家门:
pip 25.0 from C:\Work\my-project\.venv\Lib\site-packages\pip (python 3.12)
路径在 .venv 里 → 安全;路径在 AppData / 系统目录 → 你装到全局去了,先 deactivate 反向排除或重新激活。
一个几面向未来的写法:不激活也能定向装——
python -m pip用的是当前 python 所属环境。激活状态下两者等价。
3.2 基础四连
(.venv) pip install flask # 安装最新版
(.venv) pip install "flask==3.0.0" # 指定版本==精确、>=最低
(.venv) pip list # 本环境装了什么
(.venv) pip show flask # 某包的版本、依赖、位置
你会看到 pip list:
Package Version
---------- -------
blinker 1.9.0
Flask 3.1.0
...
(连 Flask 的依赖也一起装进来了——环境里所见即全部,这正是快照可复制的前提。)
3.3 升级与卸载
(.venv) pip install --upgrade flask # 升到最新
(.venv) pip uninstall flask # 卸载(依赖会提示,不会全删)
3.4 换源:国内加速
pip 默认从 PyPI 官方源拉包,国内偶尔龟速。换清华镜像:
(.venv) pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple
一劳永逸——写成全局默认配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
| 常用源 | 地址 |
|---|---|
| 清华 | pypi.tuna.tsinghua.edu.cn/simple |
| 阿里云 | mirrors.aliyun.com/pypi/simple/ |
3.5 三个好习惯
- 装包前看一眼 pip -V——确认装进的是当前环境
- 装完
pip list验证——知道这个世界的全部内容 - 依赖变化随手记——第 4 章 requirements.txt 正是为此
记忆口诀:激活 → pip -V 路径对了 → 装 → list 记账。
3.6 动手改
- 在
.venv里装 flask,用pip show flask找到安装路径 - 全局(未激活状态)装一个小包(如
rich),对比两次pip -V的差异 - 换清华源装一个包,观察速度变化
3.7 小结
pip -V永远先自证位置,路径带.venv才安全- install / list / show / uninstall 四件套操作清晰、可逆
- 国内开发标配:
-i换源或pip config set一劳永逸
下一章:依赖清单 requirements.txt 🐸