本文罗列部分依赖的python库代码举例
pydantic-core, pyarrow, openpyxl, opencv-python, numexpr, marshmallow, markdown-it-py, loguru, langdetect,jsonpatch, jinja2, importlib-resources, importlib-metadata, httpcore, htbuilder, h2, gitdb, emoji, deprecation, deepdiff, contourpy, coloredlogs, click, beautifulsoup4, anyio, annotated-types, aiosignal,uvicorn, tiktoken, starlette, st-annotated-text, rich, requests-toolbelt, pydeck, pydantic, pandas, onnxruntime, nltk, matplotlib, markdownify, markdown, langchainhub, jsonschema-specifications, httpx,gitpython, favicon, faker, dataclasses-json, aiohttp, nstructured-client, rapidocr_onnxruntime, pymdown-extensions, pydantic_settings, openai, langsmith, jsonschema, fastapi, unstructured, sse_starlette, langchain-core, altair, streamlit, langchain-text-splitters, langchain-openai
相关参考
【Langchain编程中常见Python库讲解【2】
【Langchain编程中常见Python库讲解【1】
【Langchain编程中常见Python库以及用途】
以下是各个库的简单示例代码:
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Climbman/article/details/141512948
以下是对每个库的核心描述和简单的代码示例:
-
pydantic-core
:用于数据验证和解析的核心库,是pydantic
的底层实现。from pydantic import BaseModel class MyModel(BaseModel): name: str age: int data = {'name': 'Alice', 'age': 30} obj = MyModel(**data) print(obj)
-
pyarrow
:提供高效的内存数据结构和大数据处理工具。import pyarrow as pa # 创建一个整数列表 integers = [1, 2, 3, 4, 5] # 将列表转换为 PyArrow 数组 array = pa.array(integers) print(array)
-
openpyxl
:用于读写 Excel 文件的 Python 库。from openpyxl import Workbook wb = Workbook() ws = wb.active ws['A1'] = 'Hello' ws['B1'] = 'World' wb.save('example.xlsx')
-
opencv-python
:用于计算机视觉的库。import cv2 img = cv2.imread('image.jpg') cv2.imshow('Image', img) cv2.waitKey(0) cv2.destroyAllWindows()
-
numexpr
:快速数值表达式评估库。import numexpr as ne a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9, 10] result = ne.evaluate('a + b') print(result)
-
marshmallow
:用于将复杂的对象类型转换为简单的 Python 数据类型,以及进行反序列化。from marshmallow import Schema, fields class PersonSchema(Schema): name = fields.Str() age = fields.Int() data = {'name': 'Alice', 'age': 30} schema = PersonSchema() result = schema.load(data) print(result)
-
markdown-it-py
:Markdown 解析器。from markdown_it import MarkdownIt md = MarkdownIt() rendered = md.render('# Hello, world!') print(rendered)
-
loguru
:简单易用的日志记录库。from loguru import logger logger.info('Hello, world!')
-
langdetect
:语言检测库。from langdetect import detect text = 'Hello, world!' language = detect(text) print(language)
-
jsonpatch
:用于处理 JSON 补丁的库。
from jsonpatch import JsonPatch
patch = JsonPatch([{'op': 'add', 'path': '/new_key', 'value': 'new_value'}])
data = {'old_key': 'old_value'}
patched_data = patch.apply(data)
print(patched_data)
jinja2
:模板引擎库。
from jinja2 import Template
template = Template('Hello, {{ name }}!')
result = template.render(name='Alice')
print(result)
importlib-resources
:用于访问包内资源的库。
import importlib_resources
with importlib_resources.open_text('my_package', 'data.txt') as f:
content = f.read()
print(content)
importlib-metadata
:用于获取包的元数据。
from importlib.metadata import version
print(version('numpy'))
httpcore
:底层 HTTP 客户端库。
import httpcore
connection = httpcore.ConnectionPool()
response = connection.request('GET', 'https://example.com')
print(response.status_code)
htbuilder
:用于构建 HTML 的库。
from htbuilder import div
my_div = div(id='my_div', style='color: red;')
print(my_div)
h2
:HTTP/2 协议实现库。
import h2.connection
conn = h2.connection.H2Connection()
conn.initiate_connection()
print(conn.local_settings)
gitdb
:用于与 Git 数据库交互的库。
from gitdb import LooseObjectDB
db = LooseObjectDB('/path/to/git/repo')
for obj in db:
print(obj)
emoji
:处理 emoji 表情的库。
import emoji
text = 'Hello 😊 world!'
emojis = emoji.emoji_list(text)
print(emojis)
deprecation
:用于标记函数或类已过时的库。
from deprecation import deprecated
@deprecated(deprecated_in='1.0', removed_in='2.0', details='Use new_function instead.')
def old_function():
return 'Old function'
print(old_function())
deepdiff
:用于深度比较两个对象的库。
from deepdiff import DeepDiff
a = {'a': 1, 'b': 2}
b = {'a': 1, 'b': 3}
diff = DeepDiff(a, b)
print(diff)
contourpy
:用于绘制等高线的库。
import numpy as np
import contourpy
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2
cont = contourpy.contour_generator(X, Y, Z)
print(cont.lines(1))
coloredlogs
:为日志添加颜色的库。
import coloredlogs, logging
logger = logging.getLogger(__name__)
coloredlogs.install(level='DEBUG', logger=logger)
logger.debug('This is a debug message')
click
:用于创建命令行界面的库。
import click
@click.command()
@click.option('--name', prompt='Your name', help='The person to greet.')
def hello(name):
click.echo(f'Hello, {name}!')
if __name__ == '__main__':
hello()
beautifulsoup4
:用于网页解析的库。
from bs4 import BeautifulSoup
html = '<html><body><h1>Hello, world!</h1></body></html>'
soup = BeautifulSoup(html, 'html.parser')
print(soup.h1.text)
anyio
:异步编程库。
import anyio
async def main():
print('Hello, world!')
anyio.run(main)
annotated-types
:用于类型注解的扩展库。
from annotated_types import Gt
x: Gt[0] = 1
print(x)
aiosignal
:用于异步信号处理的库。
import asyncio
import aiosignal
async def handler(signum):
print(f'Received signal {signum}')
async def main():
await aiosignal.signal(2, handler)
await asyncio.sleep(60)
asyncio.run(main())
uvicorn
:快速的 ASGI 服务器。
# 创建一个简单的 FastAPI 应用并使用 uvicorn 运行
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
tiktoken
:用于处理 OpenAI 的 token 的库。
import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
tokens = enc.encode("Hello, world!")
print(tokens)
starlette
:轻量级的 ASGI 框架。
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
app = Starlette()
@app.route("/")
def homepage(request):
return PlainTextResponse("Hello, world!")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
st-annotated-text
:用于在 Streamlit 中显示带注释的文本的库。
import streamlit as st
from st_annotated_text import annotated_text
annotated_text(("Hello, ", "world!"))
rich
:提供丰富的终端输出格式的库。
from rich import print
print('[bold red]Hello, world![/bold red]')
requests-toolbelt
:增强版的requests
库。
from requests_toolbelt.multipart.encoder import MultipartEncoder
m = MultipartEncoder(fields={'field0': 'value0', 'field1': 'value1'})
print(m.to_string())
pydeck
:用于创建交互式地图可视化的库。
import pydeck as pdk
view_state = pdk.ViewState(latitude=37.7749, longitude=-122.4194, zoom=10)
layer = pdk.Layer('HexagonLayer', data=None, get_position='[lng, lat]', radius=200, elevation_scale=4, elevation_range=[0, 1000])
deck = pdk.Deck(layers=[layer], initial_view_state=view_state)
deck.to_html('map.html')
pydantic
:用于数据验证和解析的库。
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
data = {'name': 'Alice', 'age': 30}
person = Person(**data)
print(person)
pandas
:强大的数据处理和分析库。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [30, 25, 35]}
df = pd.DataFrame(data)
print(df)
onnxruntime
:用于运行 ONNX 模型的库。
import onnxruntime as rt
sess = rt.InferenceSession('model.onnx')
input_name = sess.get_inputs()[0].name
output_name = sess.get_outputs()[0].name
input_data = [1, 2, 3]
result = sess.run([output_name], {input_name: [input_data]})
print(result)
nltk
:自然语言处理工具包。
import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize
text = "Hello, world! This is a test."
tokens = word_tokenize(text)
print(tokens)
matplotlib
:数据可视化库。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
markdownify
:将 HTML 转换为 Markdown 的库。
import markdownify
html = '<h1>Hello, world!</h1>'
markdown = markdownify.markdownify(html)
print(markdown)
markdown
:Markdown 解析和生成库。
import markdown
text = '# Hello, world!'
html = markdown.markdown(text)
print(html)
langchainhub
:LangChain 的中心库。
# 目前不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
jsonschema-specifications
:用于处理 JSON Schema 规范的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
httpx
:现代的 HTTP 客户端库。
import httpx
response = httpx.get('https://example.com')
print(response.status_code)
gitpython
:用于与 Git 仓库交互的库。
from git import Repo
repo = Repo('/path/to/git/repo')
print(repo.active_branch)
favicon
:用于处理网站图标(favicon)的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
faker
:用于生成假数据的库。
from faker import Faker
fake = Faker()
print(fake.name())
dataclasses-json
:用于将数据类与 JSON 进行序列化和反序列化的库。
from dataclasses import dataclass
from dataclasses_json import dataclass_json
@dataclass_json
@dataclass
class Person:
name: str
age: int
person = Person(name='Alice', age=30)
json_data = person.to_json()
print(json_data)
aiohttp
:异步 HTTP 客户端/服务器库。
import aiohttp
async def main():
async with aiohttp.ClientSession() as session:
async with session.get('https://example.com') as response:
print(response.status)
asyncio.run(main())
-
nstructured-client
:不太清楚具体功能,无法给出示例。 -
rapidocr_onnxruntime
:用于 OCR 的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
pymdown-extensions
:用于扩展 Markdown 的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
pydantic_settings
:与pydantic
一起用于配置管理的库。
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
api_key: str
settings = Settings()
print(settings.api_key)
openai
:OpenAI 的 Python 库。
import openai
openai.api_key = 'your_api_key'
response = openai.Completion.create(engine="davinci", prompt="Hello, world!")
print(response.choices[0].text)
langsmith
:用于语言处理的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
jsonschema
:用于验证 JSON 数据的库。
from jsonschema import validate
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"}
},
"required": ["name", "age"]
}
data = {"name": "Alice", "age": 30}
validate(instance=data, schema=schema)
fastapi
:快速的 Web 框架。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
unstructured
:用于处理非结构化数据的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
59