Python: pip 与虚拟环境
标准库覆盖了很多场景,但真正开发项目时几乎一定会用到第三方库——
requests发 HTTP 请求、pandas处理数据、flask搭网站。这一课教你如何安装、管理这些第三方库,以及如何用虚拟环境隔离不同项目的依赖。
1. pip——Python 包管理器
pip 是 Python 官方的包管理器,用来安装、卸载、管理第三方库。
BASH
# 安装包
pip install requests
# 安装指定版本
pip install requests==2.31.0
# 卸载包
pip uninstall requests
# 列出已安装的包
pip list
# 查看包的信息
pip show requests
💡 pip 从 PyPI(Python Package Index)下载包。 PyPI 是 Python 官方的包仓库,拥有超过 50 万个包。
pip install 包名 会自动从 PyPI 下载并安装。
2. requirements.txt
当你的项目依赖多个第三方库时,用 requirements.txt 记录它们:
TXT
requests==2.31.0
flask==3.0.0
pandas==2.0.0
numpy==1.24.0
BASH
# 安装所有依赖(对方拿到项目后执行)
pip install -r requirements.txt
# 生成 requirements.txt(当前环境的所有包)
pip freeze > requirements.txt
▶ 示例:用 requests 调用 API(难度⭐⭐)
TEXT
📖 仅展示
# 需要先安装:pip install requests
import requests
# 调用公开 API 获取天气信息(示例 API)
try:
response = requests.get(
"https://api.open-meteo.com/v1/forecast",
params={
"latitude": 39.9,
"longitude": 116.4,
"current_weather": True
},
timeout=10
)
if response.status_code == 200:
data = response.json()
weather = data["current_weather"]
print(f"北京当前温度:{weather['temperature']}°C")
print(f"风速:{weather['windspeed']} km/h")
else:
print(f"请求失败:{response.status_code}")
except requests.exceptions.RequestException as e:
print(f"网络错误:{e}")
3. 虚拟环境 venv
不同项目可能需要不同版本的同一个包。虚拟环境解决这个问题——每个项目有自己的独立环境。
BASH
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate
# 激活后,终端提示符前面会显示 (myenv)
# 这时安装的包只在这个环境中
# 退出虚拟环境
deactivate
(1) 工作流程
BASH
# 1. 创建项目目录
mkdir my_project
cd my_project
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# 4. 安装依赖
pip install requests flask
# 5. 记录依赖
pip freeze > requirements.txt
# 6. 开发完成后退出
deactivate
# 别人拿到项目后:
# python -m venv venv
# source venv/bin/activate (或 Windows 的对应命令)
# pip install -r requirements.txt
4. 常用第三方库速览
| 库名 | 用途 | 安装命令 | 一句话说明 |
|---|---|---|---|
requests |
HTTP 请求 | pip install requests |
发 HTTP 请求的最流行方式 |
flask |
Web 框架 | pip install flask |
轻量级 Python Web 框架 |
pandas |
数据分析 | pip install pandas |
Excel 级别的数据处理能力 |
numpy |
数值计算 | pip install numpy |
高性能数组运算 |
beautifulsoup4 |
网页解析 | pip install beautifulsoup4 |
从 HTML 中提取数据 |
pillow |
图片处理 | pip install pillow |
图片打开/编辑/保存 |
pytest |
测试框架 | pip install pytest |
Python 最流行的测试框架 |
▶ 示例:用 pandas 读取 CSV(难度⭐⭐)
TEXT
📖 仅展示
# 需要先安装:pip install pandas
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv("students.csv")
print(df.head()) # 前 5 行
print(f"行数:{len(df)}, 列数:{len(df.columns)}")
print(df.describe()) # 统计信息
▶ 示例:虚拟环境完整工作流(难度⭐)
TEXT
📖 仅展示
# 1. 创建项目目录
mkdir my_data_project
cd my_data_project
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活虚拟环境(Windows)
venv\Scripts\activate
# 激活虚拟环境(macOS/Linux)
# source venv/bin/activate
# 4. 安装项目依赖
pip install requests pandas
# 5. 验证安装
pip list
# 输出:
# Package Version
# ---------- -------
# pandas 2.x.x
# requests 2.x.x
# 6. 冻结依赖到文件
pip freeze > requirements.txt
# 7. 查看 requirements.txt 内容
type requirements.txt
# 输出:
# pandas==2.x.x
# requests==2.x.x
# 8. 退出虚拟环境
deactivate
# 9. 他人重建环境
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
💡 关键步骤:创建 → 激活 → 安装 → 冻结 → 退出。
pip freeze > requirements.txt 把当前环境的包版本写入文件,别人用 pip install -r requirements.txt 就能复现完全一样的环境。
5. 常见应用场景
- 项目初始化:创建虚拟环境 → 安装依赖 → 开始编码。
- 依赖管理:用
requirements.txt锁定版本,确保团队和生产环境一致。 - 环境隔离:不同项目用不同版本的同一个库(如项目 A 用 Flask 2.x,项目 B 用 Flask 3.x)。
- 一键部署:
pip install -r requirements.txt一次性安装所有依赖。
❓ 常见问题
Q
pip install 和 python -m pip install 有什么区别?A 效果一样。
python -m pip 明确指定了用哪个 Python 解释器的 pip,在多 Python 版本环境下更安全。建议养成用 python -m pip install 的习惯。Q 虚拟环境应该放在项目目录里还是外面?
A 通常放在项目根目录下,命名为
venv 或 .venv。这样其他开发者一看就知道这个目录是虚拟环境。记得把 venv/ 加到 .gitignore 中——虚拟环境不应该提交到代码仓库。Q
pip freeze > requirements.txt 会把所有包都列出来,太多了怎么办?A
pip freeze 确实会列出所有依赖(包括依赖的依赖)。只保留顶层的几个包,去掉间接依赖是常见的做法。也可以用 pipreqs 库,它只扫描你的代码中实际 import 的包。📖 小节
pip install 包名安装第三方包,pip uninstall卸载requirements.txt记录项目依赖,pip install -r requirements.txt批量安装- 虚拟环境
venv隔离每个项目的依赖 - 工作流:创建 venv → 激活 → pip install → 开发 → freeze → 提交
- 常用第三方库:
requests、flask、pandas、numpy、beautifulsoup4
📝 作业
-
基础题(难度⭐):创建一个虚拟环境,激活它,安装
requests库,用pip list确认已安装,然后退出虚拟环境。 -
进阶题(难度⭐⭐):用
requests库调用 https://api.github.com/repos/python/cpython 获取 CPython 仓库的信息,输出仓库名称、Star 数、Fork 数、最后更新时间。 -
挑战题(难度⭐⭐⭐):创建一个项目目录,初始化虚拟环境,安装
flask和requests,用pip freeze > requirements.txt生成依赖文件。然后删除虚拟环境,从零开始用requirements.txt重建——确认项目可以正常工作。