Awesome Python
¶
来源: https://github.com/vinta/awesome-python
一份精选的 Python 框架、库、软件和资源列表。
灵感来源于 awesome-php。
- Awesome Python
- 管理面板 (Admin Panels)
- 算法与设计模式 (Algorithms and Design Patterns)
- ASGI 服务器 (ASGI Servers)
- 异步编程 (Asynchronous Programming)
- 音频 (Audio)
- 认证 (Authentication)
- 构建工具 (Build Tools)
- 内置类增强 (Built-in Classes Enhancement)
- 缓存 (Caching)
- ChatOps 工具 (ChatOps Tools)
- 内容管理系统 (CMS)
- 代码分析 (Code Analysis)
- 命令行界面开发 (Command-line Interface Development)
- 命令行工具 (Command-line Tools)
- 计算机视觉 (Computer Vision)
- 配置文件 (Configuration Files)
- 密码学 (Cryptography)
- 数据分析 (Data Analysis)
- 数据验证 (Data Validation)
- 数据可视化 (Data Visualization)
- 数据库驱动 (Database Drivers)
- 数据库 (Database)
- 日期和时间 (Date and Time)
- 调试工具 (Debugging Tools)
- 深度学习 (Deep Learning)
- DevOps 工具 (DevOps Tools)
- 分布式计算 (Distributed Computing)
- 分发 (Distribution)
- 文档 (Documentation)
- 下载器 (Downloader)
- 编辑器插件和 IDE (Editor Plugins and IDEs)
- 电子邮件 (Email)
- 环境管理 (Environment Management)
- 文件处理 (File Manipulation)
- 函数式编程 (Functional Programming)
- 游戏开发 (Game Development)
- 地理定位 (Geolocation)
- GUI 开发 (GUI Development)
- 硬件 (Hardware)
- HTML 处理 (HTML Manipulation)
- HTTP 客户端 (HTTP Clients)
- 图像处理 (Image Processing)
- Python 实现 (Implementations)
- 交互式解释器 (Interactive Interpreter)
- 国际化 (Internationalization)
- 任务调度 (Job Scheduler)
- 日志 (Logging)
- 机器学习 (Machine Learning)
- 杂项 (Miscellaneous)
- 自然语言处理 (Natural Language Processing)
- 网络虚拟化 (Network Virtualization)
- 新闻订阅 (News Feed)
- ORM
- 包管理 (Package Management)
- 包仓库 (Package Repositories)
- 渗透测试 (Penetration testing)
- 权限 (Permissions)
- 进程 (Processes)
- 推荐系统 (Recommender Systems)
- 代码重构 (Refactoring)
- RESTful API
- 机器人 (Robotics)
- RPC 服务器 (RPC Servers)
- 科学计算 (Science)
- 搜索 (Search)
- 序列化 (Serialization)
- 无服务器框架 (Serverless Frameworks)
- Shell
- 特定格式处理 (Specific Formats Processing)
- 静态网站生成器 (Static Site Generator)
- 标签 (Tagging)
- 任务队列 (Task Queues)
- 模板引擎 (Template Engine)
- 测试 (Testing)
- 文本处理 (Text Processing)
- 第三方 API (Third-party APIs)
- URL 处理 (URL Manipulation)
- 视频 (Video)
- Web 资源管理 (Web Asset Management)
- Web 内容提取 (Web Content Extracting)
- Web 爬虫 (Web Crawling)
- Web 框架 (Web Frameworks)
- WebSocket
- WSGI 服务器 (WSGI Servers)
- 资源 (Resources)
- 贡献 (Contributing)
管理面板 (Admin Panels)¶
用于管理界面的库。
- ajenti - 你的服务器值得拥有的管理面板。
- django-grappelli - Django Admin-Interface 的一个炫酷皮肤。
- flask-admin - 用于 Flask 的简单且可扩展的管理界面框架。
- flower - Celery 的实时监控和 Web 管理界面。
- jet-bridge - 适用于任何具有漂亮 UI 的应用程序的管理面板框架 (例如 Jet Django)。
- wooey - 一个能为 Python 脚本自动创建 Web UI 的 Django 应用。
- streamlit - 一个能让你在几分钟内构建仪表盘、生成报告或创建聊天应用的框架。
算法与设计模式 (Algorithms and Design Patterns)¶
数据结构、算法和设计模式的 Python 实现。另请参阅 awesome-algorithms。
- 算法
- algorithms - 数据结构和算法的极简示例。
- python-ds - 用于编程面试的数据结构和算法集合。
- sortedcontainers - 快速且纯 Python 实现的有序集合。
- thealgorithms - 所有用 Python 实现的算法。
- 设计模式
- pypattyrn - 一个简单而有效的库,用于实现常见的设计模式。
- python-patterns - Python 中的设计模式集合。
- transitions - 一个轻量级、面向对象的有限状态机实现。
ASGI 服务器 (ASGI Servers)¶
ASGI 兼容的 Web 服务器。
- daphne - 一个用于 ASGI 和 ASGI-HTTP 的 HTTP、HTTP2 和 WebSocket 协议服务器。
- uvicorn - 一个基于 uvloop 和 httptools 实现的闪电般快速的 ASGI 服务器。
- hypercorn - 一个基于 Hyper 库并受 Gunicorn 启发的 ASGI 和 WSGI 服务器。
异步编程 (Asynchronous Programming)¶
用于异步、并发和并行执行的库。另请参阅 awesome-asyncio。
- asyncio - (Python 标准库) 异步 I/O、事件循环、协程和任务。
- concurrent.futures - (Python 标准库) 一个用于异步执行可调用对象的高级接口。
- multiprocessing - (Python 标准库) 基于进程的并行。
- trio - 一个友好的异步并发和 I/O 库。
- twisted - 一个事件驱动的网络引擎。
- uvloop - 超快速的 asyncio 事件循环。
- eventlet - 支持 WSGI 的异步框架。
- gevent - 一个基于协程的 Python 网络库,使用 greenlet。
音频 (Audio)¶
用于处理音频及其元数据的库。
- 音频
- audioread - 跨库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。
- audioFlux - 一个用于音频和音乐分析、特征提取的库。
- dejavu - 音频指纹识别。
- kapre - Keras 音频预处理器。
- librosa - 用于音频和音乐分析的 Python 库。
- matchering - 一个用于自动化参考音频母带处理的库。
- mingus - 一个带有 MIDI 文件和播放支持的高级音乐理论和记谱包。
- pyaudioanalysis - 音频特征提取、分类、分割和应用。
- pydub - 通过简单易用的高级接口处理音频。
- timeside - 开放的 Web 音频处理框架。
- 元数据
- beets - 音乐库管理器和 MusicBrainz 标签器。
- eyed3 - 一个处理音频文件(特别是包含 ID3 元数据的 MP3 文件)的工具。
- mutagen - 一个处理音频元数据的 Python 模块。
- tinytag - 一个用于读取 MP3、OGG、FLAC 和 Wave 文件音乐元数据的库。
认证 (Authentication)¶
用于实现认证方案的库。
- OAuth
- authlib - JavaScript 对象签名和加密草案的实现。
- django-allauth - “开箱即用” 的 Django 认证应用。
- django-oauth-toolkit - 用于 Django 的 OAuth 2 工具。
- oauthlib - 一个通用且完整的 OAuth 请求签名逻辑实现。
- JWT
- pyjwt - Python 中的 JSON Web Token 实现。
- python-jose - Python 中的 JOSE 实现。
构建工具 (Build Tools)¶
从源代码编译软件。
- bitbake - 一个类似 make 的嵌入式 Linux 构建工具。
- buildout - 用于从多个部分创建、组装和部署应用程序的构建系统。
- platformio - 一个用于通过不同开发平台构建代码的控制台工具。
- pybuilder - 一个用纯 Python 编写的持续构建工具。
- scons - 一款软件构建工具。
内置类增强 (Built-in Classes Enhancement)¶
用于增强 Python 内置类的库。
- attrs - 替代类定义中
__init__
、__eq__
、__repr__
等的样板代码。 - bidict - 高效、Pythonic 的双向映射数据结构和相关功能。
- box - 支持高级点符号访问的 Python 字典。
- dataclasses - (Python 标准库) 数据类。
- dotteddict - 一个提供通过点路径表示法访问列表和字典的库。
内容管理系统 (CMS)¶
内容管理系统。
缓存 (Caching)¶
用于缓存数据的库。
- beaker - 一个用于会话和缓存的 WSGI 中间件。
- django-cache-machine - Django 模型的自动缓存和失效。
- django-cacheops - 一个支持自动粒度事件驱动失效的智能 ORM 缓存。
- dogpile.cache - dogpile.cache 是由 Beaker 的原作者们制作的下一代替代品。
- hermescache - 具有基于标签的失效和雪崩效应预防功能的 Python 缓存库。
- pylibmc - libmemcached 接口的 Python 封装。
- python-diskcache - 基于 SQLite 和文件的缓存后端,查找速度比 memcached 和 redis 更快。
ChatOps 工具 (ChatOps Tools)¶
用于聊天机器人开发的库。
- errbot - 最简单且最流行的聊天机器人,用于实现 ChatOps。
代码分析 (Code Analysis)¶
静态分析、linter 和代码质量检查工具。另请参阅 awesome-static-analysis。
- 代码分析
- code2flow - 将你的 Python 和 JavaScript 代码转换为 DOT 流程图。
- prospector - 一个分析 Python 代码的工具。
- vulture - 一个用于查找和分析无用 Python 代码的工具。
- 代码 Linter
- 代码格式化
- 静态类型检查,另请参阅 awesome-python-typing
- mypy - 在编译时检查变量类型。
- pyre-check - 高性能的类型检查。
- typeshed - 带有静态类型的 Python 库 stub 集合。
- 静态类型注解生成器
- monkeytype - 一个通过收集运行时类型来为 Python 生成静态类型注解的系统。
- pytype - Pytype 可以在不需要类型注解的情况下,为 Python 代码检查并推断类型。
命令行界面开发 (Command-line Interface Development)¶
用于构建命令行应用的库。
- 命令行应用开发
- cement - Python 的 CLI 应用框架。
- click - 一个以可组合方式创建优美命令行界面的包。
- cliff - 一个用于创建多级命令的命令行程序的框架。
- python-fire - 一个可以从任何 Python 对象创建命令行界面的库。
- python-prompt-toolkit - 一个用于构建强大交互式命令行的库。
- 终端渲染
- alive-progress - 一种新型的进度条,具有实时吞吐量、预计完成时间和非常酷的动画。
- asciimatics - 一个创建全屏文本 UI 的包(从交互式表单到 ASCII 动画)。
- bashplotlib - 在终端中制作基本绘图。
- colorama - 跨平台的彩色终端文本。
- rich - 用于在终端中显示富文本和优美格式的 Python 库。还提供了一个出色的
RichHandler
日志处理器。 - tqdm - 用于循环和 CLI 的快速、可扩展的进度条。
命令行工具 (Command-line Tools)¶
用于提高生产力的有用 CLI 工具。
- 生产力工具
- copier - 一个用于渲染项目模板的库和命令行工具。
- cookiecutter - 一个从 cookiecutters (项目模板) 创建项目的命令行工具。
- doitlive - 一个用于在终端中进行现场演示的工具。
- howdoi - 通过命令行即时获得编码答案。
- invoke - 一个用于管理面向 shell 的子进程并将可执行 Python 代码组织成 CLI 可调用任务的工具。
- pathpicker - 从 bash 输出中选择文件。
- thefuck - 修正你上一条控制台命令。
- tmuxp - 一个 tmux 会话管理器。
- try - 一个极其简单的 CLI,用于尝试 Python 包——从未如此简单。
- CLI 增强
计算机视觉 (Computer Vision)¶
用于计算机视觉的库。
- easyocr - 开箱即用的 OCR,支持 40 多种语言。
- kornia - 用于 PyTorch 的开源可微分计算机视觉库。
- opencv - 开源计算机视觉库。
- pytesseract - Google Tesseract OCR 的一个封装。
- tesserocr - 另一个简单、对 Pillow 友好的
tesseract-ocr
API 封装,用于 OCR。
配置文件 (Configuration Files)¶
用于存储和解析配置选项的库。
- configparser - (Python 标准库) INI 文件解析器。
- configobj - 带验证的 INI 文件解析器。
- hydra - Hydra 是一个用于优雅配置复杂应用程序的框架。
- python-decouple - 将设置与代码严格分离。
密码学 (Cryptography)¶
- cryptography - 一个旨在向 Python 开发者公开加密原语和配方的包。
- paramiko - 领先的原生 Python SSHv2 协议库。
- pynacl - 网络和密码学 (NaCl) 库的 Python 绑定。
数据分析 (Data Analysis)¶
用于数据分析的库。
- pandas - 提供高性能、易于使用的数据结构和数据分析工具的库。
- aws-sdk-pandas - AWS 上的 Pandas。
- datasette - 一个用于探索和发布数据的开源多功能工具。
- optimus - 使用 PySpark 轻松实现敏捷数据科学工作流。
数据验证 (Data Validation)¶
用于验证数据的库。在许多情况下用于表单验证。
- cerberus - 一个轻量级且可扩展的数据验证库。
- colander - 验证和反序列化通过 XML、JSON、HTML 表单 post 获得的数据。
- jsonschema - JSON Schema 的 Python 实现。
- schema - 一个用于验证 Python 数据结构的库。
- schematics - 数据结构验证。
- voluptuous - 一个 Python 数据验证库。
- pydantic - 使用 Python 类型提示进行数据验证。
数据可视化 (Data Visualization)¶
用于数据可视化的库。另请参阅 awesome-javascript。
- altair - 用于 Python 的声明式统计可视化库。
- bokeh - 用于 Python 的交互式 Web 绘图。
- bqplot - Jupyter Notebook 的交互式绘图库。
- cartopy - 一个支持 matplotlib 的地图绘制 Python 库。
- diagrams - 代码即图表。
- matplotlib - 一个 Python 2D 绘图库。
- plotnine - 一个基于 ggplot2 的 Python 图形语法。
- pygal - 一个 Python SVG 图表创建器。
- pygraphviz - Graphviz 的 Python 接口。
- pyqtgraph - 交互式实时 2D/3D/图像绘图和科学/工程小部件。
- seaborn - 使用 Matplotlib 进行统计数据可视化。
- vispy - 基于 OpenGL 的高性能科学可视化。
数据库 (Database)¶
用 Python 实现的数据库。
数据库驱动 (Database Drivers)¶
用于连接和操作数据库的库。
- MySQL - awesome-mysql
- mysqlclient - 支持 Python 3 的 MySQL 连接器 (mysql-python 的 fork)。
- pymysql - 一个与 mysql-python 兼容的纯 Python MySQL 驱动。
- PostgreSQL - awesome-postgres
- psycopg - 最流行的 Python PostgreSQL 适配器。
- SQLite - awesome-sqlite
- sqlite3 - (Python 标准库) 兼容 DB-API 2.0 的 SQLite 接口。
- sqlite-utils - 用于操作 SQLite 数据库的 Python CLI 工具和库。
- 其他关系型数据库
- pymssql - 一个简单的 Microsoft SQL Server 数据库接口。
- clickhouse-driver - 带有原生接口的 ClickHouse Python 驱动。
- NoSQL 数据库
- cassandra-driver - Apache Cassandra 的 Python 驱动。
- happybase - 一个对开发者友好的 Apache HBase 库。
- kafka-python - Apache Kafka 的 Python 客户端。
- pymongo - MongoDB 的官方 Python 客户端。
- motor - MongoDB 的异步 Python 驱动。
- redis-py - Redis 的 Python 客户端。
日期和时间 (Date and Time)¶
用于处理日期和时间的库。
- arrow - 一个 Python 库,提供了一种明智且人性化的方法来创建、操作、格式化和转换日期、时间和时间戳。
- dateutil - 标准 Python datetime 模块的扩展。
- pendulum - 让 Python 的 datetimes 变得简单。
- pytz - 世界时区定义,现代和历史的。将 tz database 引入 Python。
调试工具 (Debugging Tools)¶
用于调试代码的库。
- pdb-like 调试器
- Tracing (追踪)
- manhole - 调试 UNIX 套接字连接,并为所有线程呈现堆栈跟踪和一个交互式提示符。
- python-hunter - 一个灵活的代码追踪工具包。
- Profiler (性能分析器)
- 其他
- django-debug-toolbar - 为 Django 显示各种调试信息。
- flask-debugtoolbar - django-debug-toolbar 的 flask 移植版。
- icecream - 通过一个简单的函数调用来检查变量、表达式和程序执行。
- pyelftools - 解析和分析 ELF 文件和 DWARF 调试信息。
深度学习 (Deep Learning)¶
用于神经网络和深度学习的框架。另请参阅 awesome-deep-learning。
- keras - 一个高级神经网络库,能够运行在 TensorFlow 或 Theano 之上。
- pytorch - Python 中的张量和动态神经网络,具有强大的 GPU 加速功能。
- pytorch-lightning - 深度学习框架,用于快速训练、部署和交付 AI 产品。
- stable-baselines3 - Stable Baselines (深度) 强化学习算法的 PyTorch 实现。
- tensorflow - 由 Google 创建的最受欢迎的深度学习框架。
- theano - 一个用于快速数值计算的库。
DevOps 工具 (DevOps Tools)¶
用于 DevOps 的软件和库。
- 配置管理
- SSH-style 部署
- 进程管理
- supervisor - 用于 UNIX 的 Supervisor 进程控制系统。
- 监控
- psutil - 一个跨平台的进程和系统实用程序模块。
- 备份
- borg - 一个带压缩和加密的去重归档器。
分布式计算 (Distributed Computing)¶
用于分布式计算的框架和库。
- 批处理
- dask - 一个用于分析计算的灵活并行计算库。
- luigi - 一个帮助你构建复杂批处理作业管道的模块。
- PySpark - Apache Spark Python API。
- Ray - 一个用于并行和分布式 Python 的系统,统一了机器学习的生态系统。
- 流处理
- faust - 一个流处理库,将 Kafka Streams 的思想移植到 Python。
- streamparse - 通过 Apache Storm 对实时数据流运行 Python 代码。
分发 (Distribution)¶
创建用于发布分发的打包可执行文件的库。
- py2app - 冻结 Python 脚本 (Mac OS X)。
- py2exe - 冻结 Python 脚本 (Windows)。
- pyarmor - 一个用于混淆 python 脚本、将混淆后的脚本绑定到固定机器或使混淆后的脚本过期的工具。
- pyinstaller - 将 Python 程序转换为独立的可执行文件 (跨平台)。
- shiv - 一个命令行工具,用于构建完全自包含的 zipapps (PEP 441),但包含其所有依赖项。
文档 (Documentation)¶
用于生成项目文档的库。
下载器 (Downloader)¶
用于下载的库。
- akshare - 一个为人类构建的金融数据接口库!
- s3cmd - 一个用于管理 Amazon S3 和 CloudFront 的命令行工具。
- youtube-dl - 一个用于从 YouTube 和其他视频网站下载视频的命令行程序。
编辑器插件和 IDE (Editor Plugins and IDEs)¶
- Emacs
- elpy - Emacs Python 开发环境。
- Vim
- jedi-vim - Jedi 自动补全库的 Vim 绑定。
- python-mode - 一个将 Vim 变成 Python IDE 的全能插件。
- YouCompleteMe - 包含基于 Jedi 的 Python 补全引擎。
- Visual Studio
- PTVS - Visual Studio 的 Python 工具。
- Visual Studio Code
- Python - 官方 VSCode 扩展,对 Python 提供丰富的支持。
- IDE
电子邮件 (Email)¶
用于发送和解析电子邮件的库。
- 邮件服务器
- 客户端
- 其他
环境管理 (Environment Management)¶
用于 Python 版本和虚拟环境管理的库。
- pyenv - 简单的 Python 版本管理。
- virtualenv - 一个创建隔离 Python 环境的工具。
文件处理 (File Manipulation)¶
用于文件处理的库。
- mimetypes - (Python 标准库) 将文件名映射到 MIME 类型。
- pathlib - (Python 标准库) 一个跨平台、面向对象的路径库。
- path.py - os.path 的模块封装。
- python-magic - libmagic 文件类型识别库的 Python 接口。
- watchdog - 用于监控文件系统事件的 API 和 shell 工具。
函数式编程 (Functional Programming)¶
用 Python 进行函数式编程。
- coconut - 为简单、优雅、Pythonic 的函数式编程而构建的 Python 变体。
- funcy - 一个酷炫实用的函数式工具。
- more-itertools -
itertools
之外更多用于操作可迭代对象的例程。 - returns - 一组类型安全的 monad、transformer 和组合工具。
- cytoolz -
Toolz
的 Cython 实现:高性能的函数式工具。 - toolz - 用于迭代器、函数和字典的函数式工具集合。
GUI 开发 (GUI Development)¶
用于图形用户界面应用的库。
- curses - 内置的 ncurses 封装,用于创建终端 GUI 应用。
- Eel - 用于制作类似 Electron 的简单离线 HTML/JS GUI 应用的库。
- enaml - 用类似 QML 的声明式语法创建漂亮的用户界面。
- Flexx - Flexx 是一个纯 Python 工具包,用于创建 GUI,使用 Web 技术进行渲染。
- Gooey - 一行代码将命令行程序变成完整的 GUI 应用。
- kivy - 一个用于创建 NUI 应用的库,可在 Windows、Linux、Mac OS X、Android 和 iOS 上运行。
- pyglet - 一个跨平台的 Python 窗口和多媒体库。
- PyGObject - GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。
- PyQt - Qt 跨平台应用和 UI 框架的 Python 绑定。
- PySimpleGUI - tkinter、Qt、WxPython 和 Remi 的封装。
- pywebview - 一个围绕 webview 组件的轻量级跨平台原生封装。
- Tkinter - Tkinter 是 Python 事实上的标准 GUI 包。
- Toga - 一个 Python 原生、操作系统原生的 GUI 工具包。
- urwid - 一个用于创建终端 GUI 应用的库,对小部件、事件、丰富色彩等有强大支持。
- wxPython - wxWidgets C++ 类库与 Python 的融合。
- DearPyGui - 一个简单的 GPU 加速 Python GUI 框架。
GraphQL¶
用于处理 GraphQL 的库。
- graphene - Python 的 GraphQL 框架。
游戏开发 (Game Development)¶
优秀的游戏开发库。
- Arcade - Arcade 是一个现代 Python 框架,用于制作具有引人入胜的图形和声音的游戏。
- Cocos2d - cocos2d 是一个用于构建 2D 游戏、演示和其他图形/交互式应用的框架。
- Harfang3D - 用于 3D、VR 和游戏开发的 Python 框架。
- Panda3D - 由迪士尼开发的 3D 游戏引擎。
- Pygame - Pygame 是一组专为编写游戏而设计的 Python 模块。
- PyOgre - Ogre 3D 渲染引擎的 Python 绑定,可用于游戏、模拟等任何 3D 应用。
- PyOpenGL - OpenGL 及其相关 API 的 Python ctypes 绑定。
- PySDL2 - 基于 ctypes 的 SDL2 库封装。
- RenPy - 一个视觉小说引擎。
地理定位 (Geolocation)¶
用于地理编码地址和处理经纬度的库。
- django-countries - 一个为模型和表单提供国家字段的 Django 应用。
- geodjango - 一个世界级的地理 Web 框架。
- geojson - 用于 GeoJSON 的 Python 绑定和工具。
- geopy - Python 地理编码工具箱。
HTML 处理 (HTML Manipulation)¶
用于处理 HTML 和 XML 的库。
- beautifulsoup - 为迭代、搜索和修改 HTML 或 XML 提供 Pythonic 的习惯用法。
- bleach - 一个基于白名单的 HTML 清理和文本链接化库。
- cssutils - 一个用于 Python 的 CSS 库。
- html5lib - 一个符合标准的库,用于解析和序列化 HTML 文档和片段。
- lxml - 一个非常快速、易于使用且功能多样的处理 HTML 和 XML 的库。
- markupsafe - 为 Python 实现了一个 XML/HTML/XHTML 标记安全字符串。
- pyquery - 一个类似 jQuery 的 HTML 解析库。
- untangle - 将 XML 文档转换为 Python 对象以便于访问。
- WeasyPrint - 一个可以导出为 PDF 的 HTML 和 CSS 可视化渲染引擎。
- xmldataset - 简单的 XML 解析。
- xmltodict - 使用 XML 就像使用 JSON 一样。
HTTP 客户端 (HTTP Clients)¶
用于处理 HTTP 的库。
- httpx - 下一代 Python HTTP 客户端。
- requests - 为人类设计的 HTTP 请求库。
- treq - 基于 Twisted 的 HTTP 客户端构建的类似 requests 的 API。
- urllib3 - 一个具有线程安全连接池、文件 post 支持、易于使用的 HTTP 库。
硬件 (Hardware)¶
用于硬件编程的库。
- keyboard - 在 Windows 和 Linux 上挂钩和模拟全局键盘事件。
- mouse - 在 Windows 和 Linux 上挂钩和模拟全局鼠标事件。
- pynput - 一个控制和监控输入设备的库。
- scapy - 一个出色的数据包处理库。
图像处理 (Image Processing)¶
用于处理图像的库。
- pillow - Pillow 是友好的 PIL fork。
- python-barcode - 在 Python 中创建条形码,无需额外依赖。
- pymatting - 一个用于 alpha matting (抠图) 的库。
- python-qrcode - 一个纯 Python QR 码生成器。
- pywal - 一个从图像生成配色方案的工具。
- pyvips - 一个内存需求低、速度快的图像处理库。
- quads - 基于四叉树的计算机艺术。
- scikit-image - 一个用于 (科学) 图像处理的 Python 库。
- thumbor - 一个智能图像服务。它能按需裁剪、调整大小和翻转图像。
- wand - MagickWand (ImageMagick 的 C API) 的 Python 绑定。
Python 实现 (Implementations)¶
Python 的各种实现。
- cpython - 默认、使用最广泛的用 C 语言编写的 Python 编程语言实现。
- cython - Python 的优化静态编译器。
- clpython - 用 Common Lisp 编写的 Python 编程语言实现。
- ironpython - 用 C# 编写的 Python 编程语言实现。
- micropython - 一个精简高效的 Python 编程语言实现。
- numba - 面向科学 Python 的 LLVM JIT 编译器。
- peachpy - 嵌入在 Python 中的 x86-64 汇编器。
- pypy - 一个非常快速且兼容的 Python 语言实现。
- pyston - 一个使用 JIT 技术的 Python 实现。
交互式解释器 (Interactive Interpreter)¶
交互式 Python 解释器 (REPL)。
- bpython - 一个精美的 Python 解释器界面。
- Jupyter Notebook (IPython) - 一个丰富的工具包,帮助你最大限度地利用交互式 Python。
- ptpython - 基于 python-prompt-toolkit 构建的高级 Python REPL。
国际化 (Internationalization)¶
用于处理 i18n 的库。
任务调度 (Job Scheduler)¶
用于调度任务的库。
- Airflow - Airflow 是一个以编程方式编写、调度和监控工作流的平台。
- APScheduler - 一个轻量但强大的进程内任务调度器,可以让你调度函数。
- django-schedule - 一个用于 Django 的日历应用。
- doit - 一个任务运行器和构建工具。
- gunnery - 用于分布式系统的多功能任务执行工具,带有基于 Web 的界面。
- Joblib - 一套在 Python 中提供轻量级流水线作业的工具。
- Plan - 像写代码一样轻松编写 crontab 文件。
- Prefect - 一个现代化的工作流编排框架,可以轻松构建、调度和监控稳健的数据管道。
- schedule - 为人类设计的 Python 任务调度库。
- Spiff - 一个用纯 Python 实现的强大的工作流引擎。
- TaskFlow - 一个帮助任务执行变得简单、一致和可靠的 Python 库。
日志 (Logging)¶
用于生成和处理日志的库。
- logbook - Python 日志的替代品。
- logging - (Python 标准库) Python 的日志工具。
- loguru - 旨在为 Python 带来愉快日志体验的库。
- sentry-python - 用于 Python 的 Sentry SDK。
- structlog - 结构化日志,变得简单。
机器学习 (Machine Learning)¶
用于机器学习的库。另请参阅 awesome-machine-learning。
- gym - 一个用于开发和比较强化学习算法的工具包。
- H2O - 开源、快速、可扩展的机器学习平台。
- Metrics - 机器学习评估指标。
- NuPIC - Numenta 智能计算平台。
- scikit-learn - 最流行的 Python 机器学习库。
- Spark ML - Apache Spark 的可扩展机器学习库。
- vowpal_porpoise - Vowpal Wabbit 的轻量级 Python 封装。
- xgboost - 一个可扩展、便携且分布式的梯度提升库。
- MindsDB - MindsDB 是现有数据库的开源 AI 层,允许你使用标准查询轻松开发、训练和部署最先进的机器学习模型。
Microsoft Windows¶
在 Microsoft Windows 上进行 Python 编程。
- Python(x,y) - 基于 Qt 和 Spyder 的面向科学应用的 Python 发行版。
- pythonlibs - Python 扩展包的非官方 Windows 二进制文件。
- PythonNet - Python 与 .NET 公共语言运行时 (CLR) 的集成。
- PyWin32 - 用于 Windows 的 Python 扩展。
- WinPython - 用于 Windows 7/8 的便携式开发环境。
杂项 (Miscellaneous)¶
不适合上述类别的有用库或工具。
- blinker - 一个快速的 Python 进程内信号/事件分发系统。
- boltons - 一组纯 Python 工具。
- itsdangerous - 将受信任数据传递到不受信任环境的各种辅助工具。
- magenta - 一个利用人工智能生成音乐和艺术的工具。
- pluginbase - 一个简单但灵活的 Python 插件系统。
- tryton - 一个通用的商业框架。
自然语言处理 (Natural Language Processing)¶
用于处理人类语言的库。
- 通用
- 中文
- funNLP - 一个中文 NLP 工具和数据集的集合。
- jieba - 最流行的中文文本分割库。
- pkuseg-python - 一个用于各种领域中文分词的工具包。
- snownlp - 一个处理中文文本的库。
网络虚拟化 (Network Virtualization)¶
用于虚拟网络和 SDN (软件定义网络) 的工具和库。
- mininet - 一个用 Python 编写的流行网络模拟器和 API。
- napalm - 用于操作网络设备的跨厂商 API。
- pox - 一个基于 Python 的 SDN 控制应用,如 OpenFlow SDN 控制器。
新闻订阅 (News Feed)¶
用于构建用户动态的库。
- django-activity-stream - 从你网站上的行为生成通用活动流。
- Stream Framework - 使用 Cassandra 和 Redis 构建新闻订阅和通知系统。
ORM¶
实现对象关系映射或数据映射技术的库。
- 关系型数据库
- Django Models - Django ORM。
- SQLAlchemy - Python SQL 工具包和对象关系映射器。
- dataset - 将 Python 字典存储在数据库中——适用于 SQLite、MySQL 和 PostgreSQL。
- orator - Orator ORM 提供了一个简单而优美的 ActiveRecord 实现。
- orm - 一个异步 ORM。
- peewee - 一个小巧、富有表现力的 ORM。
- pony - 提供面向生成器的 SQL 接口的 ORM。
- pydal - 一个纯 Python 数据库抽象层。
- NoSQL 数据库
- hot-redis - Redis 的富 Python 数据类型。
- mongoengine - 一个用于处理 MongoDB 的 Python 对象-文档映射器。
- PynamoDB - Amazon DynamoDB 的 Pythonic 接口。
- redisco - 一个用于在 Redis 中持久化简单模型和容器的 Python 库。
包管理 (Package Management)¶
用于包和依赖管理的库。
包仓库 (Package Repositories)¶
本地 PyPI 仓库服务器和代理。
- bandersnatch - Python 打包管理局 (PyPA) 提供的 PyPI 镜像工具。
- devpi - PyPI 服务器和打包/测试/发布工具。
- localshop - 本地 PyPI 服务器 (自定义包和 pypi 自动镜像)。
- warehouse - 下一代 Python 包仓库 (PyPI)。
渗透测试 (Penetration Testing)¶
用于渗透测试的框架和工具。
权限 (Permissions)¶
允许或拒绝用户访问数据或功能的库。
- django-guardian - 为 Django 1.2+ 实现的对象级权限。
- django-rules - 一个小巧但强大的应用,为 Django 提供对象级权限,无需数据库。
进程 (Processes)¶
用于启动和与操作系统进程通信的库。
- delegator.py - 为人类设计的 Subprocesses 2.0。
- sarge - subprocess 的又一个封装。
- sh - 一个功能齐全的 Python subprocess 替代品。
推荐系统 (Recommender Systems)¶
用于构建推荐系统的库。
- annoy - C++/Python 的近似最近邻,为内存使用优化。
- fastFM - 一个用于因子分解机的库。
- implicit - 针对隐式数据集的协同过滤的快速 Python 实现。
- libffm - 一个用于场感知因子分解机 (FFM) 的库。
- lightfm - 多种流行推荐算法的 Python 实现。
- spotlight - 使用 PyTorch 的深度推荐模型。
- Surprise - 一个用于构建和分析推荐系统的 scikit。
- tensorrec - TensorFlow 中的一个推荐引擎框架。
代码重构 (Refactoring)¶
Python 的代码重构工具和库
- Bicycle Repair Man - Bicycle Repair Man,一个 Python 的重构工具。
- Bowler - 现代 Python 的安全代码重构。
- Rope - Rope 是一个 python 重构库。
RESTful API¶
用于构建 RESTful API 的库。
- Django
- django-rest-framework - 一个强大而灵活的构建 Web API 的工具包。
- django-tastypie - 为 Django 应用创建美味的 API。
- Flask
- eve - 由 Flask、MongoDB 和良好意图驱动的 REST API 框架。
- flask-api - 用于 Flask 的可浏览 Web API。
- flask-restful - 快速为 Flask 构建 REST API。
- Pyramid
- cornice - Pyramid 的 RESTful 框架。
- 框架无关
机器人 (Robotics)¶
用于机器人学的库。
- PythonRobotics - 这是各种机器人算法及其可视化的汇编。
- rospy - 这是 ROS (机器人操作系统) 的一个库。
RPC 服务器 (RPC Servers)¶
兼容 RPC 的服务器。
- RPyC (Remote Python Call) - 一个透明且对称的 Python RPC 库。
- zeroRPC - zerorpc 是一个基于 ZeroMQ 和 MessagePack 的灵活 RPC 实现。
科学计算 (Science)¶
用于科学计算的库。另请参阅 Python-for-Scientists。
- astropy - 一个天文学领域的社区 Python 库。
- bcbio-nextgen - 为全自动高通量测序分析提供最佳实践流程。
- bccb - 与生物分析相关的有用代码集合。
- Biopython - Biopython 是一套免费的生物计算工具。
- cclib - 一个用于解析和解释计算化学软件包结果的库。
- Colour - 实现了大量的色彩理论转换和算法。
- Karate Club - 用于图结构数据的无监督机器学习工具箱。
- NetworkX - 一个用于复杂网络的高效软件。
- NIPY - 一系列神经影像工具包。
- NumPy - Python 科学计算的基础包。
- ObsPy - 一个用于地震学的 Python 工具箱。
- Open Babel - 一个旨在“说”多种化学数据语言的化学工具箱。
- PyDy - Python Dynamics 的缩写,用于辅助动态运动建模的工作流程。
- PyMC - 马尔可夫链蒙特卡洛采样工具包。
- QuTiP - Python 中的量子工具箱。
- RDKit - 化学信息学和机器学习软件。
- SciPy - 一个基于 Python 的开源软件生态系统,用于数学、科学和工程。
- SimPy - 一个基于进程的离散事件仿真框架。
- statsmodels - Python 中的统计建模和计量经济学。
- SymPy - 一个用于符号数学的 Python 库。
- Zipline - 一个 Pythonic 的算法交易库。
搜索 (Search)¶
用于索引数据和执行搜索查询的库和软件。
- django-haystack - Django 的模块化搜索。
- elasticsearch-dsl-py - Elasticsearch 的官方高级 Python 客户端。
- elasticsearch-py - Elasticsearch 的官方低级 Python 客户端。
- pysolr - Apache Solr 的一个轻量级 Python 封装。
- whoosh - 一个快速、纯 Python 的搜索引擎库。
序列化 (Serialization)¶
用于序列化复杂数据类型的库
- marshmallow - 一个轻量级库,用于将复杂对象与简单 Python 数据类型之间进行转换。
- pysimdjson - simdjson 的 Python 绑定。
- python-rapidjson - RapidJSON 的一个 Python 封装。
- ultrajson - 一个用 C 编写并带有 Python 绑定的快速 JSON 解码器和编码器。
无服务器框架 (Serverless Frameworks)¶
用于开发无服务器 Python 代码的框架。
- python-lambda - 一个用于在 AWS Lambda 中开发和部署 Python 代码的工具包。
- Zappa - 一个用于在 AWS Lambda 和 API Gateway 上部署 WSGI 应用的工具。
Shell¶
基于 Python 的 Shell。
- xonsh - 一个由 Python 驱动、跨平台、面向 Unix 的 shell 语言和命令提示符。
特定格式处理 (Specific Formats Processing)¶
用于解析和处理特定文本格式的库。
- 通用
- tablib - 一个用于 XLS、CSV、JSON、YAML 格式的表格数据集的模块。
- Office
- docxtpl - 通过 jinja2 模板编辑 docx 文档。
- openpyxl - 一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。
- pyexcel - 提供一个 API 用于读取、操作和写入 csv、ods、xls、xlsx 和 xlsm 文件。
- python-docx - 读取、查询和修改 Microsoft Word 2007/2008 docx 文件。
- python-pptx - 用于创建和更新 PowerPoint (.pptx) 文件的 Python 库。
- unoconv - 在 LibreOffice/OpenOffice 支持的任何文档格式之间进行转换。
- XlsxWriter - 一个用于创建 Excel .xlsx 文件的 Python 模块。
- xlwings - 一个 BSD 许可的库,可以轻松地从 Excel 调用 Python,反之亦然。
- xlwt / xlrd - 从 Excel 文件中写入和读取数据及格式信息。
- PDF
- pdfminer.six - Pdfminer.six 是原始 PDFMiner 的社区维护分支。
- PyPDF2 - 一个能够分割、合并和转换 PDF 页面的库。
- ReportLab - 允许快速创建丰富的 PDF 文档。
- Markdown
- Mistune - 最快且功能齐全的纯 Python Markdown 解析器。
- Python-Markdown - John Gruber's Markdown 的 Python 实现。
- YAML
- PyYAML - Python 的 YAML 实现。
- CSV
- csvkit - 用于转换和处理 CSV 的工具。
- 归档
- unp - 一个可以轻松解压归档文件的命令行工具。
静态网站生成器 (Static Site Generator)¶
静态网站生成器是一种将一些文本+模板作为输入并产生 HTML 文件作为输出的软件。
- lektor - 一个易于使用的静态 CMS 和博客引擎。
- mkdocs - 对 Markdown 友好的文档生成器。
- makesite - 简单、轻量且无魔法的静态网站/博客生成器 (< 130 行)。
- nikola - 一个静态网站和博客生成器。
- pelican - 支持 Markdown 和 reST 语法的静态网站生成器。
标签 (Tagging)¶
用于为项目添加标签的库。
- django-taggit - Django 的简单标签功能。
任务队列 (Task Queues)¶
用于处理任务队列的库。
- celery - 一个基于分布式消息传递的异步任务队列/作业队列。
- dramatiq - 一个用于 Python 3 的快速可靠的后台任务处理库。
- huey - 小型的多线程任务队列。
- mrq - 一个使用 Redis 和 gevent 的 Python 分布式工作任务队列。
- rq - Python 的简单作业队列。
模板引擎 (Template Engine)¶
用于模板和词法分析的库和工具。
测试 (Testing)¶
用于测试代码库和生成测试数据的库。
- 测试框架
- hypothesis - Hypothesis 是一个先进的 Quickcheck 风格的基于属性的测试库。
- nose2 -
nose
的继任者,基于unittest2
。 - pytest - 一个成熟且功能齐全的 Python 测试工具。
- Robot Framework - 一个通用的测试自动化框架。
- unittest - (Python 标准库) 单元测试框架。
- 测试运行器
- GUI / Web 测试
- Mock
- doublex - 强大的 Python 测试替身框架。
- freezegun - 通过 mock datetime 模块来穿越时空。
- httmock - 用于 Python 2.6+ 和 3.2+ 的 requests mock 库。
- httpretty - Python 的 HTTP 请求 mock 工具。
- mock - (Python 标准库) 一个 mock 和 patching 库。
- mocket - 一个支持 gevent/asyncio/SSL 的 socket mock 框架。
- responses - 一个用于 mock
requests
Python 库的工具库。 - VCR.py - 在你的测试中记录和回放 HTTP 交互。
- 对象工厂
- factory_boy - Python 的测试数据生成器替代品。
- mixer - 另一个测试数据生成器替代品。支持 Django、Flask、SQLAlchemy、Peewee 等。
- model_mommy - 在 Django 中创建用于测试的随机数据。
- 代码覆盖率
- coverage - 代码覆盖率测量。
- 伪造数据
文本处理 (Text Processing)¶
用于解析和处理纯文本的库。
- 通用
- chardet - 兼容 Python 2/3 的字符编码检测器。
- difflib - (Python 标准库) 用于计算差异的辅助工具。
- ftfy - 自动修复损坏的 Unicode 文本,使其更一致。
- fuzzywuzzy - 模糊字符串匹配。
- Levenshtein - 快速计算 Levenshtein 距离和字符串相似度。
- pangu.py - 偏执的文本间距。
- pyfiglet - 用 Python 编写的 figlet 实现。
- pypinyin - 将汉字转换为拼音。
- textdistance - 使用 30 多种算法计算序列之间的距离。
- unidecode - Unicode 文本的 ASCII 音译。
- Slugify
- awesome-slugify - 一个可以保留 unicode 的 Python slugify 库。
- python-slugify - 一个将 unicode 转换为 ASCII 的 Python slugify 库。
- unicode-slugify - 一个以 Django 为依赖项、生成 unicode slug 的 slugifier。
- 唯一标识符
- 解析器
- ply - lex 和 yacc 解析工具的 Python 实现。
- pygments - 一个通用的语法高亮器。
- pyparsing - 一个用于生成解析器的通用框架。
- python-nameparser - 将人名解析为其各个组成部分。
- python-phonenumbers - 解析、格式化、存储和验证国际电话号码。
- python-user-agents - 浏览器用户代理字符串解析器。
- sqlparse - 一个非验证的 SQL 解析器。
第三方 API (Third-party APIs)¶
用于访问第三方服务 API 的库。另请参阅 List of Python API Wrappers and Libraries。
- apache-libcloud - 一个 Python 库通吃所有云。
- boto3 - 亚马逊网络服务 (AWS) 的 Python 接口。
- django-wordpress - 用于 Django 的 WordPress 模型和视图。
- facebook-sdk - Facebook Platform Python SDK。
- google-api-python-client - Google APIs 的 Python 客户端库。
- gspread - Google Spreadsheets Python API。
- twython - Twitter API 的一个 Python 封装。
URL 处理 (URL Manipulation)¶
用于解析 URL 的库。
- furl - 一个使解析和操作 URL 变得简单的小型 Python 库。
- purl - 一个简单的、不可变的 URL 类,具有用于查询和操作的清晰 API。
- pyshorteners - 一个纯 Python URL 缩短库。
- webargs - 一个友好的库,用于解析 HTTP 请求参数,内置对流行 Web 框架的支持。
视频 (Video)¶
用于处理视频和 GIF 的库。
- moviepy - 一个用于基于脚本进行电影编辑的模块,支持多种格式,包括动画 GIF。
- scikit-video - 用于 SciPy 的视频处理例程。
- vidgear - 最强大的多线程视频处理框架。
Web 资源管理 (Web Asset Management)¶
用于管理、压缩和最小化网站资源的工具。
- django-compressor - 将链接和内联的 JavaScript 或 CSS 压缩成单个缓存文件。
- django-pipeline - Django 的资源打包库。
- django-storages - Django 的自定义存储后端集合。
- fanstatic - 将静态文件依赖打包、优化并作为 Python 包提供。
- fileconveyor - 一个检测文件并将其同步到 CDN、S3 和 FTP 的守护进程。
- flask-assets - 帮助你将 webassets 集成到 Flask 应用中。
- webassets - 为静态资源打包、优化并管理唯一的缓存清除 URL。
Web 内容提取 (Web Content Extracting)¶
用于提取 Web 内容的库。
- html2text - 将 HTML 转换为 Markdown 格式的文本。
- lassie - 为人类设计的 Web 内容检索。
- micawber - 一个用于从 URL 提取富内容的小型库。
- newspaper - Python 中的新闻提取、文章提取和内容策展。
- python-readability - arc90's readability 工具的快速 Python 移植。
- requests-html - 为人类设计的 Pythonic HTML 解析。
- sumy - 一个用于自动摘要文本文档和 HTML 页面的模块。
- textract - 从任何文档(Word、PowerPoint、PDF 等)中提取文本。
- toapi - 每个网站都提供 API。
Web 爬虫 (Web Crawling)¶
用于自动化网页抓取的库。
- feedparser - 通用 feed 解析器。
- grab - 网站抓取框架。
- mechanicalsoup - 一个用于自动化与网站交互的 Python 库。
- scrapy - 一个快速的高级屏幕抓取和 Web 爬虫框架。
Web 框架 (Web Frameworks)¶
传统的全栈 Web 框架。另请参阅 RESTful API。
- 同步
- 异步
- tornado - 一个 Web 框架和异步网络库。
WebSocket¶
用于处理 WebSocket 的库。
- autobahn-python - 用于 Twisted 和 asyncio 的 Python WebSocket 和 WAMP。
- channels - 为 Django 提供对开发者友好的异步功能。
- websockets - 一个用于构建 WebSocket 服务器和客户端的库,注重正确性和简单性。
WSGI 服务器 (WSGI Servers)¶
兼容 WSGI 的 Web 服务器。
- gunicorn - 预分叉 (Pre-forked),从 Ruby 的 Unicorn 项目移植而来。
- uwsgi - 一个旨在开发用于构建托管服务的完整技术栈的项目,用 C 编写。
- waitress - 多线程,为 Pyramid 提供支持。
- werkzeug - 一个 Python 的 WSGI 工具库,为 Flask 提供支持,并可以轻松嵌入到你自己的项目中。
资源 (Resources)¶
在哪里发现学习资源或新的 Python 库。
新闻资讯 (Newsletters)¶
播客 (Podcasts)¶
贡献 (Contributing)¶
我们随时欢迎你的贡献!请先查看 贡献指南。
如果你对这个精选列表有任何疑问,请随时在 Twitter 上联系我 @VintaChen 或在 GitHub 上提交 issue。