深色模式
第 11 章 · 虚拟环境与 pip:装上别人写好的轮子
本章目标
给每个项目建一个独立环境,会用 pip 装库,会导出/还原依赖。
11.1 为什么要"虚拟环境"
假设:
- A 项目需要
requests 2.31 - B 项目需要
requests 2.28
如果所有库都装在一起,就会互相打架。虚拟环境 = 给每个项目一间独立房间,各有各的库版本,互不影响。
顺带好处:项目删掉时,rm -rf 环境名 就把依赖一起清干净,不污染系统。
11.2 创建与激活
bash
# ① 在项目目录下创建(会生成 venv 文件夹)
python -m venv venv
# ② 激活
# Windows (cmd):
venv\Scripts\activate
# Windows (PowerShell):
venv\Scripts\Activate.ps1
# macOS / Linux:
source venv/bin/activate
# ③ 激活成功的标志:命令行前面多了 (venv)
(venv) C:\projects\demo>
# ④ 退出
deactivate⚠️ PowerShell 可能报"禁止运行脚本",此时执行一次:
powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned⚠️ 每个新开的终端都要重新激活一次,忘了激活就会装到全局环境里。
11.3 pip 常用命令
bash
python -m pip install requests # 装
python -m pip install requests==2.31.0 # 装指定版本
python -m pip install --upgrade requests # 升级
python -m pip uninstall requests # 卸载
python -m pip list # 已装的库
python -m pip show requests # 看详情用
python -m pip而不是直接pip,可以保证"装到当前这个 Python 环境里",少踩坑。
国内下载慢?换镜像:
bash
python -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple永久换源(一次搞定):
bash
python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple11.4 记录依赖:requirements.txt
bash
# 导出当前环境所有库及版本
python -m pip freeze > requirements.txt
# 别人(或未来的你)一键还原
python -m pip install -r requirements.txtrequirements.txt 长这样:
text
requests==2.31.0
pandas==2.2.2养成习惯:项目一开始就
pip freeze > requirements.txt,换电脑、部署服务器时能省几小时。
11.5 值得早点用的第三方库
| 库 | 干什么 |
|---|---|
requests | 发 HTTP 请求(抓网页、调 API) |
pandas | 表格数据处理(Excel 的增强版) |
openpyxl | 读写 Excel |
beautifulsoup4 / lxml | 解析 HTML |
flask / fastapi | 写 Web 服务和接口 |
rich | 终端里打印漂亮表格/进度条 |
tqdm | 循环进度条 |
python-dotenv | 管理 .env 配置 |
loguru | 更好用的日志 |
安装示例:
bash
python -m pip install requests pandas openpyxl第一个小例子:
python
import requests
r = requests.get("https://api.github.com", timeout=10)
print(r.status_code) # 200
print(r.json()["current_user_url"])python
import pandas as pd
df = pd.DataFrame({"名称": ["A", "B"], "价格": [10.0, 20.5]})
df["税后"] = df["价格"] * 1.13
print(df)
df.to_excel("out.xlsx", index=False) # 需要 openpyxl11.6 常见坑
| 现象 | 原因 | 解决 |
|---|---|---|
ModuleNotFoundError | 没装 / 装到别的环境了 | 确认已激活 venv,再 pip install |
pip 不是内部命令 | Python 没加 PATH | 用 python -m pip |
| 装了库但 import 报错 | 文件名和库重名 | 改文件名(如 json.py) |
| 装了 CPU/GPU 版本不对 | 环境混用 | 重建虚拟环境最省事 |
| 装得很慢 | 默认源在国外 | 换清华/阿里镜像 |
11.7 练一练
- 新建一个目录
demo-venv,创建虚拟环境并激活,确认命令行前面出现(venv)。 - 安装
requests,写一个小脚本请求https://httpbin.org/get并打印返回的 JSON。 - 导出
requirements.txt,然后pip uninstall requests,再用-r requirements.txt装回来。
本章关键词
venv、激活/退出、pip install / freeze / uninstall、requirements.txt、镜像源、requests、pandas