Post

Python库大全(持续更新)

刚开始学 Python 的时候,我有一个很强烈的疑惑: 为什么老师好像知道那么多 Python 库? 写什么功能都知道要 import 哪个库,难道这些都要背下来吗? 后来我慢慢理解了:成熟的 Python 开发者并不是把所有库都背下来了,而是脑子里有一张“问题分类地图”。 他知道: 处理文件,该找

先搞技术 阅读 8 点赞 0 评论 0

刚开始学 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 自带的 UnityEngineSystem 一样,是语言和运行环境本身提供的能力。

Python 官方有完整标准库文档:

Python Standard Library

也有模块索引:

Python Module Index

第二类:第三方库

第三方库是别人写好并发布出来的库,需要安装后才能使用。

例如:

pip install fastapi
pip install openai
pip install requests

或者使用现在更常见的 uv

uv add fastapi
uv add openai
uv add requests

第三方库一般来自 PyPI,也就是 Python 官方包仓库:

PyPI

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 自带的。作为初学者,先熟悉这些就很有价值。

文件和路径处理

作用

os

操作系统相关功能,比如环境变量、路径、目录

pathlib

更现代的路径处理方式

shutil

文件复制、移动、删除、压缩

glob

按通配符查找文件

示例:

from pathlib import Path

root = Path("docs")
for file in root.glob("*.md"):
    print(file.name)

Unity 类比:

pathlib 有点像你在 Unity 里处理 Assets/xxx 路径,只不过 Python 面对的是普通操作系统文件路径。


JSON 和数据格式

作用

json

读写 JSON

csv

读写 CSV 表格

tomllib

读取 TOML 配置

configparser

读取 ini 配置

示例:

import json

data = {
    "name": "MoocManus",
    "type": "Agent"
}

text = json.dumps(data, ensure_ascii=False)
print(text)

Agent 开发里,JSON 非常常见。
因为大模型工具调用、API 请求、配置文件、接口返回值,经常都用 JSON 表示。


日志和调试

作用

logging

Python 官方日志库

traceback

打印异常堆栈

pdb

Python 自带调试器

示例:

import logging

logger = logging.getLogger(__name__)
logger.info("系统启动")
logger.error("发生错误")

Unity 类比:

logging.info() 类似 Debug.Log()
logging.error() 类似 Debug.LogError()

但 Python 的日志系统更适合后端服务,因为它可以配置日志等级、格式、输出文件、远程日志平台等。


时间处理

作用

datetime

日期时间处理

time

时间戳、暂停

zoneinfo

时区处理

示例:

from datetime import datetime

now = datetime.now()
print(now)

Agent 系统里,时间常用于:

  • 任务创建时间。

  • 对话记录时间。

  • 日志时间。

  • 定时任务。

  • 缓存过期时间。


类型和数据结构

作用

typing

类型标注

dataclasses

快速定义数据类

collections

额外数据结构

enum

枚举

uuid

生成唯一 ID

示例:

from dataclasses import dataclass

@dataclass
class AgentTask:
    id: str
    prompt: str
    status: str

Unity 类比:

这有点像 C# 里定义一个数据类:

public class AgentTask
{
    public string Id;
    public string Prompt;
    public string Status;
}

异步和并发

作用

asyncio

Python 异步编程核心库

threading

多线程

multiprocessing

多进程

concurrent.futures

更高级的并发接口

Agent 后端经常需要异步,因为它可能同时等待:

  • 大模型返回。

  • 数据库查询。

  • 外部 API 响应。

  • 工具执行结果。

示例:

import asyncio

async def main():
    print("开始")
    await asyncio.sleep(1)
    print("结束")

asyncio.run(main())

4. Web 后端常用库

如果你要用 Python 做后端服务,这些库非常常见。

作用

fastapi

现代 Python Web API 框架

uvicorn

运行 FastAPI 的 ASGI 服务器

starlette

FastAPI 底层依赖的 Web 框架

pydantic

数据校验和模型定义

pydantic-settings

配置管理

python-dotenv

读取 .env 文件

FastAPI 官方介绍它是一个基于 Python 类型提示的现代高性能 Web 框架:

FastAPI 官方文档

示例:

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 官方文档:

Pydantic Docs

示例:

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: dict

6. HTTP 请求常用库

Agent 系统经常要调用外部 API,比如搜索、天气、数据库服务、模型服务等。

作用

requests

最经典的同步 HTTP 请求库

httpx

支持同步和异步的 HTTP 请求库

aiohttp

异步 HTTP 客户端和服务端

示例:

import httpx

response = httpx.get("https://example.com")
print(response.text)

如果你写 FastAPI 或 Agent 后端,httpx 会比 requests 更适合长期学习,因为它支持异步。


7. 数据库和缓存常用库

后端和 Agent 系统一般离不开数据存储。

关系型数据库

作用

sqlalchemy

Python 最常用 ORM 之一

alembic

数据库迁移工具(核心思想借鉴了Git,将数据库的每一次结构变更,都记录在一个个“迁移脚本”中,形成一个清晰的把)

psycopg

同步 PostgreSQL 驱动

asyncpg

异步 PostgreSQL 驱动

ORM 可以简单理解成:

用 Python 类操作数据库表。

Unity 类比:

有点像你定义一个 PlayerData 类,然后它能映射到数据库里的 players 表。


Redis

作用

redis

操作 Redis

Redis 常用于:

  • 缓存。

  • 会话状态。

  • Agent 短期记忆。

  • 任务队列。

  • 分布式锁。

Agent 系统里,Redis 很适合存一些“临时但高频访问”的数据。


8. AI 和 Agent 开发常用库

这是我未来转向 Agent 开发最需要重点关注的一类。

大模型 API

作用

openai

调用 OpenAI API

anthropic

调用 Anthropic Claude API

google-genai

调用 Google Gemini API

litellm

用统一接口调用多家模型

示例:

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-4.1",
    input="解释一下 Python 的 import"
)

print(response.output_text)

Agent 框架

作用

langchain

大模型应用开发框架

langgraph

更适合构建可控 Agent 流程图

llama-index

偏向 RAG 和知识库问答

pydantic-ai

基于 Pydantic 思路构建类型安全 Agent

如果只是学习 Agent 原理,不建议一上来就完全依赖框架。
更好的路线是:

  1. 先自己写一个简单 Agent 循环。

  2. 理解 LLM、Tool、Memory、Planner、Executor。

  3. 再学习 LangGraph / LangChain 这类框架。

否则很容易只会调框架,不知道 Agent 本质在做什么。


9. RAG 和向量数据库常用库

RAG 的全称是 Retrieval-Augmented Generation,中文一般叫“检索增强生成”。

简单说就是:

先从知识库里查资料,再把资料交给大模型回答。

常用库:

作用

chromadb

本地向量数据库

qdrant-client

Qdrant 向量数据库客户端

faiss-cpu

Facebook 开源的向量检索库

pinecone

云端向量数据库客户端

pgvector

PostgreSQL 向量扩展相关能力

RAG 常见流程:

文档 -> 切块 -> 向量化 -> 存入向量库 -> 用户提问 -> 检索相关片段 -> 交给大模型回答

10. 文档和文件处理常用库

Agent 经常要读文件、分析文件、生成文件。

作用

pypdf

读取 PDF

python-docx

读取和生成 Word

openpyxl

读写 Excel

pandas

表格数据分析

markdown

处理 Markdown

beautifulsoup4

解析 HTML

lxml

高性能 XML / HTML 解析

比如一个办公 Agent 可能需要:

  • 读取 PDF 合同。

  • 分析 Excel 表格。

  • 总结 Word 文档。

  • 生成 Markdown 报告。

这些库就是基础工具箱。


11. 爬虫和浏览器自动化常用库

作用

beautifulsoup4

解析网页 HTML

lxml

快速解析 HTML/XML

scrapy

爬虫框架

playwright

控制真实浏览器

selenium

经典浏览器自动化库

Agent 如果要“像人一样操作网页”,playwright 非常重要。

它可以:

  • 打开网页。

  • 点击按钮。

  • 输入文字。

  • 截图。

  • 读取网页内容。

  • 自动化测试 Web 应用。


12. 测试和代码质量常用库

作用

pytest

Python 最常用测试框架之一

ruff

代码检查和格式化

black

代码格式化

mypy

静态类型检查

coverage

测试覆盖率

作为从 Unity 转过来的开发者,我以前可能更习惯“运行场景看看对不对”。
但后端和 Agent 项目更需要自动化测试。

例如:

def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3

然后运行:

pytest

测试能帮助我们确认:

  • 改代码有没有破坏旧功能。

  • 接口返回结构是否正确。

  • Agent 工具调用是否符合预期。

  • 数据库逻辑是否稳定。


13. 命令行和脚本工具库

作用

argparse

Python 自带命令行参数解析

typer

更现代的命令行工具框架

click

经典命令行框架

rich

美化终端输出

tqdm

进度条

很多 Python 工具都是命令行工具。
比如以后你可能会写:

python scripts/import_docs.py --path ./docs

这种脚本在 Agent 项目里很常见。


14. 依赖管理和项目工具

工具 / 库

作用

pip

Python 默认包安装工具

venv

Python 自带虚拟环境

uv

更快的现代 Python 包管理工具

poetry

Python 项目和依赖管理

setuptools

Python 打包工具

我当前项目里已经有:

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
playwright

16. 看到一个新库时,应该怎么学?

不要一看到新库就想“我要全部学会”。
可以按这个模板记笔记:

库名:
属于哪一类:
解决什么问题:
项目里哪里用了:
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,而会变成一套可以组合使用的开发工具箱。


参考资料

评论