
Python生态系统以其丰富多样的库而闻名,这些库大大拓展了Python在各领域的应用边界。本文将介绍2025年最常用且功能强大的20个Python库,涵盖数据处理、Web开发、AI集成、系统工具等多个领域,每个库都配有实用的代码示例。

Polars是用Rust编写的超快速数据帧库,专为处理结构化数据而设计。PyPolars(目前更新为Polars)是一个围绕Polars的python包装器。它有类似于Pandas的API,这使得它更容易过渡。
import polars as pl
# 创建DataFrame
df = pl.DataFrame({
"name": ["张三", "李四", "王五"],
"age": [25, 30, 35],
"salary": [50000, 60000, 70000]
})
# 数据操作
result = df.filter(pl.col("age") > 30).select(["name", "salary"])
print(result)Polars比传统Pandas快10-100倍,特别适合处理大型数据集。

DuckDB是一个轻量级的内存分析数据库,性能远超SQLite。采用列式存储和向量化查询引擎,支持标准SQL语法,能够高效处理大规模数据聚合、统计等分析任务。
import duckdb
import pandas as pd
# 从Pandas DataFrame创建DuckDB表
df = pd.DataFrame({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})
conn = duckdb.connect()
conn.register('my_table', df)
# 执行SQL查询
result = conn.execute("SELECT a, b FROM my_table WHERE a > 1").fetchall()
print(result)
Pandera为Pandas DataFrame提供强大的数据验证功能。
import pandas as pd
import pandera as pa
# 定义数据模式
schema = pa.DataFrameSchema({
"name": pa.Column(str),
"age": pa.Column(int, checks=pa.Check.ge(18)),
"email": pa.Column(str, checks=pa.Check.str_matches(r'.+@.+\..+'))
})
# 验证数据
data = pd.DataFrame({
"name": ["Alice", "Bob"],
"age": [25, 17],
"email": ["alice@example.com", "bob@example.com"]
})
try:
schema.validate(data)
except pa.errors.SchemaError as err:
print(f"数据验证失败: {err}")
FastAPI是现代、快速(高性能)的Web框架,用于构建API。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
Django是“包含电池”的高级Python Web框架。
# models.py
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
# views.py
from django.shortcuts import render
from .models import Blog
def blog_list(request):
blogs = Blog.objects.all()
return render(request, 'blog/list.html', {'blogs': blogs})
Robyn是新兴的高性能Web框架,比FastAPI更快。
from robyn import Robyn
app = Robyn(__name__)
@app.get("/")
async def hello():
return "Hello, Robyn!"
@app.post("/user")
async def create_user(request):
data = request.json()
return {"user": data["name"]}
app.start(port=8080)
LangChain简化了与大型语言模型的交互。
from langchain.llms import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
llm = OpenAI(temperature=0.9)
prompt = PromptTemplate(
input_variables=["product"],
template="为{product}写一个创意广告文案,不超过50字。",
)
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run("智能手表")
print(result)
LlamaIndex简化了为LLM应用程序索引和查询数据的过程。
from llama_index import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms import OpenAI
# 加载文档
documents = SimpleDirectoryReader("data").load_data()
# 创建索引
index = VectorStoreIndex.from_documents(documents)
# 创建查询引擎
query_engine = index.as_query_engine(llm=OpenAI())
# 执行查询
response = query_engine.query("文章的主要观点是什么?")
print(response)
Weaviate是开源的向量搜索引擎,适用于AI应用。
import weaviate
from weaviate.auth import AuthApiKey
# 连接到Weaviate实例
client = weaviate.connect_to_local(
auth_credentials=AuthApiKey("your-api-key")
)
# 创建集合
collection = client.collections.create(
name="Article",
properties=[
{"name": "title", "dataType": ["text"]},
{"name": "content", "dataType": ["text"]}
],
vectorizer_config=weaviate.classes.config.Configure.Vectorizer.text2vec_openai()
)
# 插入数据
data_object = {"title": "AI最新进展", "content": "..."}
collection.data.insert(data_object)
# 查询
response = collection.query.near_text(
query="人工智能",
limit=5
)
print(response.objects)
Flet允许仅使用Python构建Web、移动和桌面应用。
import flet as ft
def main(page: ft.Page):
def button_clicked(e):
t.value = f"你好, {tb.value}!"
page.update()
t = ft.Text()
tb = ft.TextField(label="你的名字")
b = ft.ElevatedButton("打招呼", on_click=button_clicked)
page.add(tb, b, t)
ft.app(target=main)
Textual用于构建丰富的终端用户界面。
from textual.app import App, ComposeResult
from textual.widgets import Header, Footer, Button
class ButtonApp(App):
def compose(self) -> ComposeResult:
yield Header()
yield Button("点击我!", id="click")
yield Footer()
def on_button_pressed(self, event: Button.Pressed) -> None:
self.notify("按钮被点击了!")
if __name__ == "__main__":
app = ButtonApp()
app.run()
Reflex是用Python构建全栈Web应用的框架。
import reflex as rx
class State(rx.State):
count: int = 0
def increment(self):
self.count += 1
def decrement(self):
self.count -= 1
def index():
return rx.hstack(
rx.button("减少", on_click=State.decrement),
rx.text(State.count),
rx.button("增加", on_click=State.increment),
)
app = rx.App()
app.add_page(index)
app.compile()
Ruff是基于Rust的超快Python代码检查工具。
# 检查代码
ruff check .
# 自动修复
ruff check --fix .
# 格式化代码
ruff format .
Pydantic通过类型提示实现数据验证和设置管理。
from pydantic import BaseModel, EmailStr, validator
class User(BaseModel):
name: str
email: EmailStr
age: int
@validator('age')
def age_must_be_positive(cls, v):
if v <= 0:
raise ValueError('年龄必须是正数')
return v
user = User(name="张三", email="zhang@example.com", age=25)
print(user.json())
PyScript允许在浏览器中直接运行Python。通过 HTML 嵌入实现交互式 Web 应用开发。其核心优势包括无需 JavaScript 基础、支持科学计算库(如 NumPy、Pandas)和客户端处理数据以减轻服务器压力。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href=" https://pyscript.net/latest/pyscript.css " />
<script defer src=" https://pyscript.net/latest/pyscript.js "></script>
</head>
<body>
<py-script>
from datetime import datetime
now = datetime.now()
print(f"当前时间: {now}")
</py-script>
</body>
</html>
FastStream是用于构建异步消息处理应用的框架。
from faststream import FastStream, Logger
from faststream.rabbitmq import RabbitBroker
broker = RabbitBroker("amqp://guest:guest@localhost:5672/")
app = FastStream(broker)
@broker.subscriber("test-queue")
async def handle(msg: str, logger: Logger):
logger.info(f"收到消息: {msg}")
return "处理完成"
@app.after_startup
async def test():
await broker.publish("Hello!", "test-queue")
Scrapy是快速、高层次的网页爬取框架。
import scrapy
class BlogSpider(scrapy.Spider):
name = 'blogspider'
start_urls = [' https://example.com/blog ']
def parse(self, response):
for title in response.css('.post-title'):
yield {'title': title.css('::text').get()}
for next_page in response.css('a.next-posts-link'):
yield response.follow(next_page, self.parse)
Pytest使编写小型测试变得简单。
# test_sample.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 4
# 测试类
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert hasattr(x, "upper")
Python的Docker SDK允许从Python代码控制Docker。
import docker
client = docker.from_env()
# 列出所有容器
for container in client.containers.list():
print(container.name)
# 运行新容器
container = client.containers.run(
"alpine",
"echo hello world",
detach=True
)
print(container.logs())
Loguru提供了简单而强大的日志记录功能。
from loguru import logger
logger.add("file_{time}.log", rotation="500 MB")
logger.debug("这是一条调试信息")
logger.info("这是一条普通信息")
logger.warning("这是一条警告信息")
logger.error("这是一条错误信息")
# 带上下文的日志
def process_data(data):
with logger.contextualize(task_id=123):
logger.info("处理数据中...")
# 处理逻辑
logger.success("数据处理完成")这20个Python库覆盖了Python开发的各个方面,从数据处理到Web开发,从人工智能到系统工具。掌握这些库将极大提升开发效率和项目质量。随着Python生态系统的不断发展,这些库也在持续更新,建议定期查看它们的官方文档以获取最新功能和最佳实践。
“无他,惟手熟尔”!有需要的用起来。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!😊
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!