令人敬畏的Python
精选的 Python 框架、库、软件和资源列表。
灵感来自awesome-php。
管理面板
用于管理界面的库。
算法和设计模式
数据结构、算法和设计模式的 Python 实现。另请参阅 awesome-algorithms。
ASGI 服务器
与 ASGI 兼容的 Web 服务器。
-
daphne - 用于 ASGI 和 ASGI-HTTP 的 HTTP、HTTP2 和 WebSocket 协议服务器.
-
uvicorn -闪电般快速的ASGI服务器实现,使用uvloop和httptools.
异步编程
音频
用于操作音频及其元数据的库。
认证
用于实现身份验证方案的库。
构建工具
从源代码编译软件。
内置类增强功能
用于增强 Python 内置类的库。
-
attrs - 替换类定义中 、 、 等样板。
__init__
__eq__
__repr__
-
bidict - 高效的 Pythonic 双向 map数据结构和相关功能.
-
Box - 具有高级点表示法访问权限的 Python 字典。
-
dataclasses -(Python 标准库)数据类。
-
DottedDict - 一个库,它提供了一种使用虚线路径表示法访问列表和字典的方法。
内容管理系统
内容管理系统。
缓存
用于缓存数据的库。
ChatOps 工具
用于聊天机器人开发的库。
-
errbot - 实现 ChatOps 的最简单、最流行的聊天机器人。
代码分析
静态分析工具、linter 和代码质量检查器。另请参阅 awesome-static-analysis。
命令行界面开发
用于构建命令行应用程序的库。
命令行工具
基于 CLI 的有用工具,可提高工作效率。
兼容性
用于从 Python 2 迁移到 Python 3 的库。
计算机视觉
计算机视觉库。
并发性和并行性
用于并发和并行执行的库。另请参阅 awesome-asyncio。
配置
用于存储和解析配置选项的库。
密码学
数据分析
用于数据分析的库。
数据验证
用于验证数据的库。在许多情况下用于表单。
数据可视化
用于可视化数据的库。另请参阅 awesome-javascript。
数据库
用 Python 实现的数据库。
-
pickleDB - 一个简单轻量级的 Python 键值存储.
-
tinydb - 一个小型的、面向文档的数据库.
-
ZODB - Python 的原生对象数据库。键值和对象图数据库。
数据库驱动程序
用于连接和操作数据库的库。
日期和时间
用于处理日期和时间的库。
调试工具
用于调试代码的库。
- 类 pdb 调试器
-
ipdb - 启用了 IPython 的 pdb。
-
pdb++ - pdb 的另一个直接替代品。
-
pudb - 基于控制台的全屏 Python 调试器.
-
wdb - 通过 WebSockets 的不可能的 Web 调试器。
- 描图
- 分析器
- 别人
深度学习
神经网络和深度学习框架。另请参阅 awesome-deep-learning。
DevOps工具
DevOps 软件和库。
- 配置管理
- SSH 样式部署
- 流程管理
- 监测
- 备份
- 别人
分布式计算
分布式计算的框架和库。
分配
用于创建用于发布分发的打包可执行文件的库。
-
dh-virtualenv - 构建 virtualenv 并将其作为 Debian 软件包分发.
-
Nuitka - 将脚本、模块、包编译为可执行文件或扩展模块.
-
py2app - 冻结 Python 脚本 (Mac OS X)。
-
py2exe - 冻结 Python 脚本 (Windows)。
-
pyarmor - 用于混淆 python 脚本、将混淆脚本绑定到固定机器或使混淆脚本过期的工具。
-
PyInstaller - 将 Python 程序转换为独立的可执行文件(跨平台)。
-
pynsist - 构建 Windows 安装程序的工具,安装程序捆绑了 Python 本身.
-
shiv - 用于构建完全独立的 zipapps (PEP 441) 的命令行实用程序,但包含它们的所有依赖项.
文档
用于生成项目文档的库。
-
sphinx - Python 文档生成器。
-
pdoc - Epydoc 替换以自动生成 Python 库的 API 文档.
-
pycco -文字编程风格的文档生成器.
下载器
用于下载的库。
-
akshare - 一个金融数据接口库,为人类而建!
-
s3cmd - 用于管理 Amazon S3 和 CloudFront 的命令行工具。
-
s4cmd - 超级 S3 命令行工具,适用于更高的性能。
-
you-get - 用 Python 3 编写的 YouTube/Youku/Niconico 视频下载器.
-
youtube-dl - 一个小型命令行程序,用于从 YouTube 下载视频.
电子商务
电子商务和支付的框架和库。
编辑器插件和 IDE
- Emacs的
-
elpy - Emacs Python 开发环境.
- 崇高的文字
- Vim的
- Visual Studio的
-
PTVS - 适用于 Visual Studio 的 Python 工具。
- Visual Studio 代码
-
Python - 官方 VSCode 扩展,对 Python 提供丰富的支持.
- 集成开发环境
-
PyCharm - JetBrains 的商业 Python IDE.提供免费的社区版。
-
spyder -开源Python IDE.
电子邮件
用于发送和分析电子邮件的库。
企业应用程序集成
用于企业环境中系统集成的平台和工具
-
Zato - Python 中的 ESB、SOA、REST、API 和云集成.
环境管理
用于 Python 版本和虚拟环境管理的库。
文件
用于文件操作和 MIME 类型检测的库。
外部功能接口
用于提供外部函数接口的库。
-
cffi - 用于调用 C 代码的 Python 的外部函数接口。
-
ctypes -(Python标准库)用于Python调用C代码的外部函数接口.
-
PyCUDA - Nvidia 的 CUDA API 的 Python 包装器.
-
SWIG - 简化的包装器和接口生成器。
形式
用于处理表单的库。
函数式编程
使用 Python 进行函数式编程。
-
Coconut - Python 的变体,专为简单、优雅的 Python 函数式编程而构建.
-
CyToolz -Cython实现:高性能功能实用程序.
Toolz
-
fn.py - Python 中的函数式编程:实现缺少的功能以享受 FP.
-
funcy - 一个花哨而实用的功能工具。
-
more-itertools - 用于对可迭代对象进行操作的更多例程,除了 .
itertools
-
returns - 一组类型安全的 monads、transformer 和组合实用程序。
-
Toolz - 用于迭代器、函数和字典的功能实用程序的集合。
GUI开发
用于处理图形用户界面应用程序的库。
图形QL
用于处理 GraphQL 的库。
游戏开发
很棒的游戏开发库。
地理位置
用于对地址进行地理编码以及处理纬度和经度的库。
HTML 操作
用于处理 HTML 和 XML 的库。
HTTP 客户端
用于处理 HTTP 的库。
-
grequests - 异步 HTTP 请求的请求 + gevent。
-
httplib2 -全面的HTTP客户端库.
-
httpx - Python 的下一代 HTTP 客户端。
-
requests - 针对人类的 HTTP 请求。
-
treq - Python 请求,例如构建在 Twisted 的 HTTP 客户端之上的 API.
-
urllib3 - 一个 HTTP 库,具有线程安全连接池、文件发布支持、健全友好.
硬件
用于使用硬件编程的库。
图像处理
用于处理图像的库。
实现
Python 的实现。
-
CLPython -用Common Lisp编写的Python编程语言的实现.
-
CPython -用C编写的Python编程语言的默认,最广泛使用的实现.
-
Cython -优化Python的静态编译器.
-
Grumpy - 编译器比解释器更强大,因为更强大的 CPython2.7 替代品 (alpha).
-
IronPython -用C#编写的Python编程语言的实现.
-
Jython -用Java为JVM编写的Python编程语言的实现.
-
MicroPython -精简高效的Python编程语言实现.
-
Numba - 针对科学 Python 的 LLVM 的 Python JIT 编译器.
-
PeachPy - 嵌入在 Python 中的 x86-64 汇编器.
-
Pyjion -基于CoreCLR的Python的JIT.
-
PyPy - Python 语言的非常快速且兼容的实现.
-
Pyston -使用JIT技术的Python实现.
-
Stackless Python - Python 编程语言的增强版本。
交互式口译员
交互式 Python 解释器 (REPL)。
国际化
用于处理 i18n 的库。
作业计划程序
用于调度作业的库。
伐木
用于生成和处理日志的库。
机器学习
机器学习库。另请参阅 awesome-machine-learning。
Microsoft Windows
Microsoft Windows 上的 Python 编程。
杂项
不属于上述类别的有用库或工具。
自然语言处理
用于处理人类语言的库。
网络虚拟化
用于虚拟网络和 SDN(软件定义网络)的工具和库。
-
mininet - 用 Python 编写的流行网络模拟器和 API.
-
napalm -用于操作网络设备的跨供应商API.
-
pox - 基于 Python 的 SDN 控制应用程序,例如 OpenFlow SDN 控制器。
新闻提要
用于构建用户活动的库。
ORM的
实现对象关系映射或数据映射技术的库。
软件包管理
用于包和依赖项管理的库。
-
pip - Python 的包安装程序。
-
conda - 跨平台、与 Python 无关的二进制包管理器.
-
poetry - Python 依赖管理和打包变得容易.
软件包存储库
本地 PyPI 存储库服务器和代理。
渗透测试
用于渗透测试的框架和工具。
权限
允许或拒绝用户访问数据或功能的库。
过程
用于启动操作系统进程并与之通信的库。
推荐系统
用于构建推荐系统的库。
重构
Python 重构工具和库
RESTful API
用于构建 RESTful API 的库。
- 姜戈
- 瓶
- 金字塔
- 与框架无关
-
apistar - 专为 Python 3 设计的智能 Web API 框架.
-
falcon -用于构建云API和Web应用程序后端的高性能框架.
-
fastapi - 一个现代、快速的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API.
-
hug - 用于干净公开 API 的 Python 3 框架.
-
sandman2 -用于现有数据库驱动系统的自动化REST API.
-
sanic - 一个 Python 3.6+ Web 服务器和 Web 框架,旨在快速运行.
-
vibora - 受 Flask 启发的快速、高效和异步 Web 框架.
机器人
机器人库。
RPC 服务器
与 RPC 兼容的服务器。
科学
用于科学计算的库。另请参阅 Python-for-Scientists。
搜索
用于索引和执行数据搜索查询的库和软件。
序列化
用于序列化复杂数据类型的库
无服务器框架
用于开发无服务器 Python 代码的框架。
-
python-lambda - 用于在 AWS Lambda 中开发和部署 Python 代码的工具包。
-
Zappa - 用于在 AWS Lambda 和 API Gateway 上部署 WSGI 应用程序的工具。
壳
基于 Python 的 shell。
-
xonsh - 一种由 Python 驱动的、跨平台的、Unix 凝视的 shell 语言和命令提示符.
特定格式处理
用于解析和操作特定文本格式的库。
- 常规
-
tablib -XLS,CSV,JSON,YAML格式的表格数据集模块.
- 办公室
-
docxtpl - 通过 jinja2 模板编辑 docx 文档
-
openpyxl - 用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。
-
pyexcel - 提供一个用于读取、操作和写入 csv、ods、xls、xlsx 和 xlsm 文件的 API.
-
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格式
- 降价
- YAML的
-
PyYAML - Python 的 YAML 实现.
- CSV 格式
- 档案
静态站点生成器
静态网站生成器是一种软件,它将一些文本+模板作为输入,并在输出上生成HTML文件。
标记
用于标记项目的库。
任务队列
用于处理任务队列的库。
-
celery - 基于分布式消息传递的异步任务队列/作业队列.
-
dramatiq - 用于 Python 3 的快速可靠的后台任务处理库.
-
huey - 小型多线程任务队列.
-
mrq -使用Redis和gevent的Python中的分布式工作器任务队列.
-
rq - Python 的简单作业队列。
模板引擎
用于模板化和词法分析的库和工具。
-
Genshi -用于生成Web感知输出的Python模板工具包.
-
Jinja2 - 一种现代且对设计师友好的模板语言。
-
Mako - Python 平台的超快速和轻量级模板.
测试
用于测试代码库和生成测试数据的库。
- 测试框架
- 测试运行程序
-
green - 一个干净、多彩的测试运行程序。
-
mamba - Python 的权威测试工具。诞生于BDD的旗帜下。
-
tox - 在多个 Python 版本中自动构建和测试发行版
- GUI / Web 测试
- 模拟
- 对象工厂
- 代码覆盖率
- 虚假数据
文本处理
用于解析和操作纯文本的库。
第三方 API
用于访问第三方服务 API 的库。另请参阅 Python API 包装器和库列表。
URL 操作
用于解析 URL 的库。
-
furl - 一个小型 Python 库,可以轻松解析和操作 URL.
-
purl - 一个简单、不可变的 URL 类,具有用于查询和操作的干净 API.
-
pyshorteners - 纯 Python URL 缩短库.
-
webargs -用于解析HTTP请求参数的友好库,内置了对流行Web框架的支持.
视频
用于处理视频和 GIF 的库。
网络资产管理
用于管理、压缩和缩小网站资产的工具。
Web 内容提取
用于提取 Web 内容的库。
网络爬虫
用于自动执行 Web 抓取的库。
Web Frameworks
Traditional full stack web frameworks. Also see RESTful API.
- Synchronous
-
Django - The most popular web framework in Python.
-
Flask - A microframework for Python.
-
Pyramid - A small, fast, down-to-earth, open source Python web framework.
-
Masonite - The modern and developer centric Python web framework.
- Asynchronous
-
Tornado - A web framework and asynchronous networking library.
WebSocket
Libraries for working with WebSocket.
-
autobahn-python - WebSocket & WAMP for Python on Twisted and asyncio.
-
channels - Developer-friendly asynchrony for Django.
-
websockets - A library for building WebSocket servers and clients with a focus on correctness and simplicity.
WSGI Servers
WSGI-compatible web servers.
-
bjoern - Asynchronous, very fast and written in C.
-
gunicorn - Pre-forked, ported from Ruby's Unicorn project.
-
uWSGI - A project aims at developing a full stack for building hosting services, written in C.
-
waitress - Multi-threaded, powers Pyramid.
-
werkzeug - A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects.
Resources
Where to discover learning resources or new Python libraries.
Books
网站链接
通讯
播客
贡献
随时欢迎你的贡献!请先看一下贡献指南。
如果我不确定这些库是否很棒,我会保持一些拉取请求的开放状态,你可以通过添加👍它们来投票支持它们。当拉取请求的票数达到 20 票时,将合并。
如果你对这个固执己见的列表有任何疑问,请随时在 Twitter 上@VintaChen与我联系,或在 GitHub 上提出问题。