刚开始学 Python 的时候,我有一个很强烈的疑惑:
为什么老师好像知道那么多 Python 库?
写什么功能都知道要import哪个库,难道这些都要背下来吗?
后来我慢慢理解了:成熟的 Python 开发者并不是把所有库都背下来了,而是脑子里有一张“问题分类地图”。
他知道:
处理文件,该找哪类库。
写 Web API,该找哪类库。
做数据库,该找哪类库。
调大模型,该找哪类库。
做 Agent,该找哪类库。
标准库够不够用,不够再找第三方库。
这和 Unity 开发其实很像。
Unity 开发者也不会背下所有 Package 和 Asset Store 插件,但你大概知道:
做 UI,想到 UGUI / UI Toolkit。
做寻路,想到 NavMesh。
做异步资源,想到 Addressables。
做网络,想到 Netcode / Mirror / HTTP。
做动画,想到 Animator / Timeline / DOTween。
Python 也是一样的。真正要学的不是“背库名”,而是建立一张“库的用途地图”。
1. Python 库分为三类
Python 里的库大致可以分成三类。
第一类:标准库
标准库就是 Python 自带的库,不需要额外安装,直接 import 就能用。
例如:
import os
import json
import logging
from pathlib import Path
from datetime import datetime这些库就像 Unity 自带的 UnityEngine、System 一样,是语言和运行环境本身提供的能力。
Python 官方有完整标准库文档:
也有模块索引:
第二类:第三方库
第三方库是别人写好并发布出来的库,需要安装后才能使用。
例如:
pip install fastapi
pip install openai
pip install requests或者使用现在更常见的 uv:
uv add fastapi
uv add openai
uv add requests第三方库一般来自 PyPI,也就是 Python 官方包仓库:
PyPI 上有大量 Python 包,所以所谓“Python 库大全”并不是一本能完全背下来的字典,而是一个庞大的生态系统。
第三类:项目自己的模块
比如在我的项目里,有这样的导入:
from core.config import get_settings
from app.interface.schemas.base import Response这些不是 Python 官方库,也不是第三方库,而是当前项目自己写的代码。
也就是说,import 不一定代表“导入外部库”,也可能是在导入自己项目里的其他文件。
2. 为什么 Python 总是要 import?
Python 的设计理念是:核心语言保持简洁,具体能力通过模块来组织。
比如你要处理 JSON,就导入:
import json你要打印日志,就导入:
import logging你要写 Web API,就导入:
from fastapi import FastAPI这和 C# 里的 using 很像:
using UnityEngine;
using System.Collections.Generic;Python 里的 import,可以理解成:
我要使用某个能力,所以把这个能力所在的模块引入当前文件。
3. Python 标准库常用分类
下面这些库不需要安装,是 Python 自带的。作为初学者,先熟悉这些就很有价值。
文件和路径处理
示例:
from pathlib import Path
root = Path("docs")
for file in root.glob("*.md"):
print(file.name)Unity 类比:
pathlib 有点像你在 Unity 里处理 Assets/xxx 路径,只不过 Python 面对的是普通操作系统文件路径。
JSON 和数据格式
示例:
import json
data = {
"name": "MoocManus",
"type": "Agent"
}
text = json.dumps(data, ensure_ascii=False)
print(text)Agent 开发里,JSON 非常常见。
因为大模型工具调用、API 请求、配置文件、接口返回值,经常都用 JSON 表示。
日志和调试
示例:
import logging
logger = logging.getLogger(__name__)
logger.info("系统启动")
logger.error("发生错误")Unity 类比:
logging.info() 类似 Debug.Log()。logging.error() 类似 Debug.LogError()。
但 Python 的日志系统更适合后端服务,因为它可以配置日志等级、格式、输出文件、远程日志平台等。
时间处理
示例:
from datetime import datetime
now = datetime.now()
print(now)Agent 系统里,时间常用于:
任务创建时间。
对话记录时间。
日志时间。
定时任务。
缓存过期时间。
类型和数据结构
示例:
from dataclasses import dataclass
@dataclass
class AgentTask:
id: str
prompt: str
status: strUnity 类比:
这有点像 C# 里定义一个数据类:
public class AgentTask
{
public string Id;
public string Prompt;
public string Status;
}异步和并发
Agent 后端经常需要异步,因为它可能同时等待:
大模型返回。
数据库查询。
外部 API 响应。
工具执行结果。
示例:
import asyncio
async def main():
print("开始")
await asyncio.sleep(1)
print("结束")
asyncio.run(main())4. Web 后端常用库
如果你要用 Python 做后端服务,这些库非常常见。
FastAPI 官方介绍它是一个基于 Python 类型提示的现代高性能 Web 框架:
示例:
from fastapi import FastAPI
app = FastAPI()
@app.get("/status")
def get_status():
return {"code": 200, "msg": "success"}这段代码的含义是:
当用户访问
/status时,执行get_status()函数,并返回 JSON。
Unity 类比:
如果 Unity 是客户端,那么 FastAPI 就像你自己写的游戏后端 API 服务。
5. 数据校验和模型库
Pydantic
pydantic 是 Python 后端和 Agent 开发里非常重要的库。
它可以用来定义结构化数据,并自动校验类型。
Pydantic 官方文档:
示例:
from pydantic import BaseModel
class UserInput(BaseModel):
message: str
user_id: int
data = UserInput(message="你好", user_id=1)如果传错类型,Pydantic 会帮你报错。
这在 Agent 开发中特别重要,因为大模型输出有时候不稳定。
我们经常需要把模型输出约束成固定结构,比如:
class ToolCall(BaseModel):
tool_name: str
arguments: dict6. HTTP 请求常用库
Agent 系统经常要调用外部 API,比如搜索、天气、数据库服务、模型服务等。
示例:
import httpx
response = httpx.get("https://example.com")
print(response.text)如果你写 FastAPI 或 Agent 后端,httpx 会比 requests 更适合长期学习,因为它支持异步。
7. 数据库和缓存常用库
后端和 Agent 系统一般离不开数据存储。
关系型数据库
ORM 可以简单理解成:
用 Python 类操作数据库表。
Unity 类比:
有点像你定义一个 PlayerData 类,然后它能映射到数据库里的 players 表。
Redis
Redis 常用于:
缓存。
会话状态。
Agent 短期记忆。
任务队列。
分布式锁。
Agent 系统里,Redis 很适合存一些“临时但高频访问”的数据。
8. AI 和 Agent 开发常用库
这是我未来转向 Agent 开发最需要重点关注的一类。
大模型 API
示例:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
input="解释一下 Python 的 import"
)
print(response.output_text)Agent 框架
如果只是学习 Agent 原理,不建议一上来就完全依赖框架。
更好的路线是:
先自己写一个简单 Agent 循环。
理解 LLM、Tool、Memory、Planner、Executor。
再学习 LangGraph / LangChain 这类框架。
否则很容易只会调框架,不知道 Agent 本质在做什么。
9. RAG 和向量数据库常用库
RAG 的全称是 Retrieval-Augmented Generation,中文一般叫“检索增强生成”。
简单说就是:
先从知识库里查资料,再把资料交给大模型回答。
常用库:
RAG 常见流程:
文档 -> 切块 -> 向量化 -> 存入向量库 -> 用户提问 -> 检索相关片段 -> 交给大模型回答10. 文档和文件处理常用库
Agent 经常要读文件、分析文件、生成文件。
比如一个办公 Agent 可能需要:
读取 PDF 合同。
分析 Excel 表格。
总结 Word 文档。
生成 Markdown 报告。
这些库就是基础工具箱。
11. 爬虫和浏览器自动化常用库
Agent 如果要“像人一样操作网页”,playwright 非常重要。
它可以:
打开网页。
点击按钮。
输入文字。
截图。
读取网页内容。
自动化测试 Web 应用。
12. 测试和代码质量常用库
作为从 Unity 转过来的开发者,我以前可能更习惯“运行场景看看对不对”。
但后端和 Agent 项目更需要自动化测试。
例如:
def add(a, b):
return a + b
def test_add():
assert add(1, 2) == 3然后运行:
pytest测试能帮助我们确认:
改代码有没有破坏旧功能。
接口返回结构是否正确。
Agent 工具调用是否符合预期。
数据库逻辑是否稳定。
13. 命令行和脚本工具库
很多 Python 工具都是命令行工具。
比如以后你可能会写:
python scripts/import_docs.py --path ./docs这种脚本在 Agent 项目里很常见。
14. 依赖管理和项目工具
我当前项目里已经有:
pyproject.toml
uv.lock
.venv这说明项目正在使用现代 Python 项目结构。
简单理解:
pyproject.toml:声明项目依赖。uv.lock:锁定依赖版本。.venv:当前项目自己的 Python 虚拟环境。
15. Agent 开发者优先学习路线
Python 库太多,不可能一口气全部学完。
如果目标是转向 Agent 开发,我建议按下面顺序学。
第一阶段:Python 基础工具箱
先熟悉:
pathlib
os
json
logging
datetime
typing
dataclasses
asyncio目标:能看懂普通 Python 项目代码。
第二阶段:后端 API 开发
重点学习:
fastapi
uvicorn
pydantic
pydantic-settings
httpx目标:能写一个 API 服务,并能调用外部接口。
第三阶段:数据存储
重点学习:
sqlalchemy
alembic
redis
psycopg目标:能保存用户、任务、对话、Agent 执行记录。
第四阶段:大模型调用
重点学习:
openai
litellm
pydantic
httpx目标:能封装一个 LLM Client,并处理模型输入输出。
第五阶段:Agent 核心能力
重点理解:
Agent
Tool
Memory
Planner
Executor
RAG
Sandbox
MCP这一阶段不只是学库,而是学架构。
可以再逐步接触:
langchain
langgraph
llama-index
pydantic-ai
chromadb
qdrant-client
playwright16. 看到一个新库时,应该怎么学?
不要一看到新库就想“我要全部学会”。
可以按这个模板记笔记:
库名:
属于哪一类:
解决什么问题:
项目里哪里用了:
Unity 里类似什么:
最常见的 3 个用法:
我当前需要掌握到什么程度:例如:
库名:FastAPI
属于哪一类:Web 后端框架
解决什么问题:把 Python 函数变成 HTTP API
项目里哪里用了:app/main.py, app/interface/endpoints
Unity 里类似什么:对外提供服务的网络层
当前掌握程度:会定义路由、启动服务、返回 JSON再比如:
库名:Pydantic
属于哪一类:数据校验 / 数据模型
解决什么问题:定义数据结构并自动检查类型
项目里哪里用了:schemas/base.py
Unity 里类似什么:强类型数据类 + Inspector 字段约束
当前掌握程度:会写 BaseModel,能定义请求和响应模型17. 总结
Python 库确实很多,但不需要全部背下来。
真正重要的是建立这样的思维:
我要解决什么问题?
这个问题属于哪一类?
标准库能不能解决?
如果不能,常用第三方库有哪些?
项目里为什么选择这个库?
我现在需要掌握到什么深度?对于我这种从 Unity 转向 Agent 开发的人来说,Python 库学习的重点不是“背 API”,而是建立一张工程地图。
以后每遇到一个库,我都要把它放到这张地图上:
基础语法 -> 标准库 -> 后端服务 -> 数据存储 -> 大模型调用 -> Agent 架构 -> 工程化部署这样学下去,Python 就不会是一堆陌生的 import,而会变成一套可以组合使用的开发工具箱。
评论