1. 标准库
1.1. 定义
Python 自带的模块集合,无需额外安装即可使用,涵盖了基础功能到高级系统接口。
1.2. 常见模块
模块名 | 功能描述 | 示例代码 |
---|---|---|
os | 操作系统交互(文件、路径、进程等) | os.listdir('.') |
sys | Python 解释器相关设置 | sys.version |
math | 数学函数 | math.sqrt(16) |
datetime | 日期和时间处理 | datetime.now() |
json | JSON 数据序列化与反序列化 | json.loads('{"key": "val"}') |
re | 正则表达式 | re.search(r'pattern', text) |
random | 随机数生成 | random.randint(1, 10) |
requests | HTTP 请求(Python 3.7+ 建议使用) | requests.get('https://api.com') |
1.3. 特点
- 跨平台一致性:在所有 Python 环境中均可使用。
- 稳定性高:版本更新时兼容性强,很少被移除或大幅修改。
- 无需安装:直接通过
import
导入。
2. 第三方库
2.1. 定义
由 Python 社区或第三方开发者创建的扩展库,需通过包管理器(如 pip
)安装。
2.2. 常见库
领域 | 代表库 | 功能描述 |
---|---|---|
Web 开发 | Flask、Django、FastAPI | 构建 Web 应用和 API |
数据科学 | NumPy、pandas、Matplotlib | 数值计算、数据分析与可视化 |
机器学习 | scikit-learn、TensorFlow | 模型训练与预测 |
爬虫 | Requests、BeautifulSoup | 网络数据抓取与解析 |
自动化 | Selenium、PyAutoGUI | 浏览器自动化、桌面操作自动化 |
测试 | pytest、unittest | 单元测试与集成测试 |
异步编程 | asyncio、aiohttp | 高性能并发处理 |
2.3. 特点
- 丰富性:覆盖几乎所有领域,解决特定场景需求。
- 更新快:社区活跃,功能迭代频繁(需注意版本兼容性)。
- 依赖管理:可能依赖其他库,需通过工具协调版本。
3. pip
3.1. 作用
Python 的官方包管理工具,用于安装、升级和卸载第三方库。
3.2. 核心命令
bash
# 安装库(指定版本或最新版)
pip install requests # 安装最新版
pip install requests==2.28.1 # 安装指定版本
pip install "requests>=2.28.0" # 安装最小版本
# 升级库
pip install --upgrade requests # 升级到最新版
# 卸载库
pip uninstall requests
# 查看已安装库及版本
pip list
# 查看安装库信息
pip show requests
# 记录项目依赖,便于环境复制
# 导出依赖到文件
pip freeze > requirements.txt # 生成依赖清单
# 从文件安装依赖
pip install -r requirements.txt # 批量安装项目依赖
3.3. 虚拟环境
隔离项目依赖,避免版本冲突:
bash
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
source myenv/bin/activate # Linux/Mac
myenv\Scripts\activate # Windows
# 退出虚拟环境
deactivate
四、三者关系
- 标准库是基础:Python 自带的“开箱即用”功能,适合实现通用需求。
- 第三方库是扩展:通过
pip
安装,填补标准库未覆盖的场景。 - pip 是桥梁:连接用户与第三方库,管理依赖关系。
五、使用建议
- 优先使用标准库:避免引入不必要的依赖,例如简单 HTTP 请求可先用
urllib
。 - 选择成熟的第三方库:优先使用社区活跃度高、文档完善的库(如 GitHub 星标数)。
- 锁定依赖版本:在
requirements.txt
中明确指定库版本,确保环境一致性。 - 使用虚拟环境:每个项目独立管理依赖,防止版本冲突。
- 更新与安全:定期使用
pip list --outdated
检查并更新库,修复安全漏洞。
六、示例:标准库 vs 第三方库
需求:发送 HTTP 请求并解析 JSON。
方案 1:使用标准库
python
from urllib.request import urlopen
import json
response = urlopen("https://api.example.com/data")
data = json.loads(response.read())
print(data)
方案 2:使用第三方库 requests
python
import requests
response = requests.get("https://api.example.com/data")
data = response.json()
print(data)
对比:标准库代码更繁琐,但无需额外安装;requests
代码更简洁,但需通过 pip install requests
安装。
总结
- 标准库:Python 的“内置工具箱”,稳定且通用。
- 第三方库:Python 的“生态武器库”,强大且灵活。
- pip:Python 的“后勤保障”,确保依赖正确安装与管理。
合理搭配三者,能让 Python 开发高效且可靠。