Awesome Python是一个收集了Python相关资源的GitHub仓库,它包括各种Python库、框架、工具、学习资源等。无论你是初学者还是有经验的开发者,都可以在Awesome Python中找到适合自己的资源。这个仓库非常活跃,当前已经收录了超过188k个star,是Python开发者必备的收藏之一。
以下是它截至目前的全部内容,一点修改都没有~
Python 资源大全中文版
awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由「开源前哨」和「Python开发者」微信公号团队维护更新。
本项目的参与者
注:名单不分排名,不定期补充更新
资源列表
环境管理
管理 Python 版本和环境的工具
包管理
管理包和依赖的工具。
- pip:Python 包和依赖关系管理工具。
- pip-tools:保证 Python 包依赖关系更新的一组工具。
- PyPI:Python 正式的第三方包软件存储库。
- pipenv:Python 官方推荐的新一代包管理工具。
- poetry:可完全取代 setup.py 的包管理工具。
- conda:跨平台的 Python 二进制包管理工具。
- Curdling:管理 Python 包的命令行工具。
- wheel:Python 分发的新标准,意在取代 eggs。
包仓库
本地 PyPI 仓库服务和代理。
分发
打包为可执行文件以便分发。
- PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。
- cx_Freeze:将python程序转换为带有一个动态链接库的可执行文件。
- dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。
- Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。
- py2app:将 Python 脚本变为独立软件包(Mac OS X)。
- py2exe:将 Python 脚本变为独立软件包(Windows)。
- pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身。
- pyarmor:一个用于加密 python 脚本的工具,也可以将加密后的脚本绑定到固件上,或设置已加密脚本的有效期。
- shiv:一个命令行工具,可用于构建完全独立的 zip 应用(PEP 441 所描述的那种),同时包含了所有的依赖项。
构建工具
将源码编译成软件。
- buildout:一个构建系统,从多个组件来创建,组装和部署应用。
- BitBake:针对嵌入式 Linux 的类似 make 的构建工具。
- fabricate:对任何语言自动找到依赖关系的构建工具。
- PlatformIO:多平台命令行构建工具。
- PyBuilder:纯 Python 实现的持续化构建工具。
- SCons:软件构建工具。
交互式解析器
交互式 Python 解析器。
文件
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
日期和时间
操作日期和时间的类库。
文本处理
用于解析和操作文本的库。
特殊文本格式处理
一些用来解析和操作特殊文本格式的库。
- 通用
- Office
- Marmir:把输入的 Python 数据结构转换为电子表单。
- openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。
- pyexcel:一个提供统一 API,用来读写,操作 Excel 文件的库。
- python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。
- python-pptx:可用于创建和修改 ppt 文件的 Python 库。
- relatorio:模板化 OpenDocument 文件。
- unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。
- XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。
- xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。
- xlwt / xlrd:读写 Excel 文件的数据和格式信息。
- docxtpl:通过 jinja2 模版编辑 docx 文档。
- PDF
- PDFMiner:一个用于从 PDF 文档中抽取信息的工具。
- PyPDF2:一个可以分割,合并和转换 PDF 页面的库。
- ReportLab:快速创建富文本 PDF 文档。
- Markdown
- YAML
- PyYAML:Python 版本的 YAML 解析器。
- CSV
- Archive
自然语言处理
用来处理人类语言的库。
文档
用以生成项目文档的库。
- Sphinx:Python 文档生成器。
- MkDocs:对 Markdown 友好的文档生成器。
- pdoc:一个可以替换 Epydoc 的库,可以自动生成 Python 库的 API 文档。
- Pycco:文学编程(literate-programming)风格的文档生成器。
- readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用。
配置
用来保存和解析配置的库。
命令行工具
用于创建命令行程序的库。
- 命令行程序开发
- cement:Python 的命令行程序框架。
- click:一个通过组合的方式来创建精美命令行界面的包。
- cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。
- clint:Python 命令行程序工具。
- docopt:Python 风格的命令行参数解析器。
- Gooey:一条命令,将命令行程序变成一个 GUI 程序。
- python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。
- python-fire:Google 出品的一个基于 Python 类的构建命令行界面的库。
- Pythonpy:在命令行中直接执行任何 Python 指令。
- 终端呈现方式
- 生产力工具
- 高级 CLI
- httpie:一个命令行 HTTP 客户端,cURL 的替代品,易用性更好。
- iredis:支持自动补全和高亮显示的 redis 命令行工具。
- kube-shell:K8S 命令行集成的 shell 工具。
- litecli:支持自动补全和语法高亮的 SQLite 命令行工具。
- mycli:支持自动补全和语法高亮的 MySQL 命令行客户端
- pgcli:支持自动补全和语法高亮的 Postgres 命令行工具。
- SAWS:一个加强版的 AWS 命令行。
- Shell
- xonsh:一种基于 python 的跨平台,面向 unix 的 shell 语言和命令提示符。
下载器
用来进行下载的库.
- s3cmd:一个用来管理 Amazon S3 和 CloudFront 的命令行工具。
- s4cmd:超级 S3 命令行工具,性能更加强劲。
- you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python 3 编写。
- youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。
- akshare:为方便人使用而创建的金融数据接口库。
图像处理
用来操作图像的库.
OCR
光学字符识别库。
音频
用来操作音频的库
Video
用来操作视频和 GIF 的库。
地理位置
地理编码地址以及用来处理经纬度的库。
HTTP
使用 HTTP 的库。
- aiohttp:基于 asyncio 的异步 HTTP 网络库。
- requests:人性化的 HTTP 请求库。
- grequests:requests 库 + gevent ,用于异步 HTTP 请求。
- httplib2:全面的 HTTP 客户端库。
- treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。
- urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。
- httpx:下一代 Python HTTP 客户端。
数据库
Python 实现的数据库。
数据库驱动
用来连接和操作数据库的库。
- MySQL:awesome-mysql 系列
- PostgreSQL
- psycopg2:Python 中最流行的 PostgreSQL 适配器。
- queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互。
- txpostgres:基于 Twisted 的异步 PostgreSQL 驱动。
- 其他关系型数据库
- apsw:另一个 Python SQLite 封装。
- dataset:在数据库中存储 Python 字典
- pymssql:一个简单的 Microsoft SQL Server 数据库接口。
- NoSQL 数据库
- 异步客户端
- motor:支持 MongoDB 的异步 Python 驱动程序。
ORM
实现对象关系映射或数据映射技术的库。
Web 框架
全栈 Web 框架。
- Django:Python 界最流行的 web 框架。
- Flask:一个 Python 微型框架。
- Pyramid:一个小巧,快速,接地气的开源 Python web 框架。
- Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。
- CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有 WSGI 线程池。
- TurboGears:一个可以扩展为全栈解决方案的微型框架。
- web.py:一个 Python 的 web 框架,既简单,又强大。
- web2py:一个全栈 web 框架和平台,专注于简单易用。
- Tornado:一个 web 框架和异步网络库。
- sanic:基于 Python3.5+ 的异步网络框架。
- starlette: 一款轻量级,高性能的 ASGI 框架。
- Masonite:以开发者为中心的现代 Python Web 框架。
WebSocket
Web socket 相关库。
权限
允许或拒绝用户访问数据或功能的库。
CMS
内容管理系统。
- odoo-cms:一个开源的,企业级 CMS,基于 odoo。
- django-cms:一个开源的,企业级 CMS,基于 Django。
- djedi-cms:一个轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。
- FeinCMS:基于 Django 构建的最先进的内容管理系统之一。
- Kotti:一个高级的,Python 范的 web 应用框架,基于 Pyramid 构建。
- Mezzanine:一个强大的,持续的,灵活的内容管理平台。
- Opps:一个为杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。
- Plone:一个构建于开源应用服务器 Zope 之上的 CMS。
- Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。
- Wagtail:一个 Django 内容管理系统。
- Widgy:最新的 CMS 框架,基于 Django。
- indico:一个功能丰富的事件管理系统,由 @CERN 开发。
电子商务
用于电子商务以及支付的框架和库。
RESTful API
用来开发 RESTful APIs 的库
- Django
- django-rest-framework:一个强大灵活的工具,用来构建 web API。
- django-tastypie:为 Django 应用开发 API。
- django-formapi:为 Django 的表单验证,创建 JSON APIs 。
- Flask
- flask-api:为 flask 开发的,可浏览 Web APIs 。
- flask-restful:为 flask 快速创建 REST APIs 。
- flask-restless:为 SQLAlchemy 定义的数据库模型创建 RESTful APIs 。
- flask-api-utils:为 Flask 处理 API 表示和验证。
- eve:REST API 框架,由 Flask, MongoDB 等驱动。
- Pyramid
- 与框架无关的
- falcon:一个用来建立云 API 和 web app 后端的高性能框架。
- sandman:为现存的数据库驱动系统自动创建 REST APIs 。
- restless:框架无关的 REST 框架 ,基于从 Tastypie 学到的知识。
- ripozo:快速创建 REST/HATEOAS/Hypermedia APIs。
- apistar:专为Python 3设计的智能 Web API 框架。
- fastapi:一个现代,快速,基于标准 Python 类型注解的的 web框架,可使用 Python3.6+ 版本构建 API。
- hug:一个为纯净公开的 API 打造的 Python 3 框架。
- sandman2:为数据库驱动的系统自动生成 REST API。
- vibora:快速高效且支持异步的 Web 框架,灵感来源于 Flask。
验证
实现验证方案的库。
模板引擎
模板生成和词法解析的库和工具。
- Jinja2:一个现代的,对设计师友好的模板引擎。
- Chameleon:一个 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。
- Genshi:Python 模板工具,用以生成 web 感知的结果。
- Mako:Python 平台的超高速轻量级模板。
队列
处理事件以及任务队列的库。
- celery:一个异步任务队列/作业队列,基于分布式消息传递
- daramatiq:适用于Python 3的快速可靠的后台任务处理库。
- huey:小型多线程任务队列。
- mrq:一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。
- rq:简单的 Python 作业队列。
- simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。
搜索
对数据进行索引和执行搜索查询的库和软件。
动态消息
用来创建用户活动的库。
Web 资源管理
管理、压缩、缩小网站资源的工具。
- django-compressor:将链接和内联的 JavaScript 或 CSS 压缩到一个单独的缓存文件中。
- django-pipeline:Django 的资源包装库。
- django-storages:一个针对 Django 的自定义存储后端的工具集合。
- fanstatic:打包、优化,并且把静态文件依赖作为 Python 的包来提供。
- File Conveyor:一个后台驻留的程序,用来发现和同步文件到 CDNs, S3 和 FTP。
- Flask-Assets:帮你将 web 资源整合到你的 Flask app 中。
- jinja-assets-compressor:一个 Jinja 扩展,用来编译和压缩你的资源。
- webassets:为你的静态资源打包、优化和管理生成独一无二的缓存 URL。
缓存
缓存数据的库。
电子邮件
用来发送和解析电子邮件的库。
国际化
用来进行国际化的库。
- Babel:一个 Python 的国际化库。
- Korean:一个韩语词态库。
- PyICU:一个封装了 ICU C++ 库的 Python 扩展。
URL 处理
解析 URLs 的库
- furl:一个让处理 URL 更简单小型 Python 库。
- purl:一个简单的,不可变的 URL 类,具有简洁的 API 来进行询问和处理。
- pyshorteners:一个纯 Python URL 缩短库。
- shorturl:生成短小 URL 和类似 bit.ly 短链的 Python 实现。
- webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。
HTML 处理
处理 HTML 和 XML 的库。
- BeautifulSoup:以 Python 风格的方式来对 HTML 或 XML 进行迭代,搜索和修改。
- bleach:一个基于白名单的 HTML 清理和文本链接库。
- cssutils:一个 Python 的 CSS 库。
- html5lib:一个兼容标准的 HTML 文档和片段解析及序列化库。
- lxml:一个非常快速,简单易用,功能齐全的库,用来处理 HTML 和 XML。
- MarkupSafe:为 Python 实现 XML/HTML/XHTML 标记安全字符串。
- pyquery:一个解析 HTML 的库,类似 jQuery。
- requests-html:人性化的,Pythonic 的 HTML 解析库。
- untangle:将 XML 文档转换为 Python 对象,使其可以方便的访问。
- xhtml2pdf:HTML/CSS 转 PDF 工具。
- xmltodict:像处理 JSON 一样处理 XML。
- WeasyPrint:用于HTML和CSS的可视化呈现引擎,并可以导出为 PDF。
- xmldataset:简单 XML 解析。
爬取网络站点的库
- Scrapy:一个快速高级的屏幕爬取及网页采集框架。
- ScrapydWeb:一个用于 Scrapyd 集群管理的全功能 web UI,支持 Scrapy 日志分析和可视化,自动打包,定时器任务和邮件通知等特色功能。
- cola:一个分布式爬虫框架。
- Demiurge:基于 PyQuery 的爬虫微型框架。
- feedparser:通用 feed 解析器。
- Grab:站点爬取框架。
- MechanicalSoup:用于自动和网络站点交互的 Python 库。
- portia:Scrapy 可视化爬取。
- pyspider:一个强大的爬虫系统。
- RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。
网页内容提取
用于进行网页内容提取的库。
表单
进行表单操作的库。
- Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。
- django-bootstrap3:集成了 Bootstrap 3 的 Django。
- django-bootstrap4:集成了 Bootstrap 4 的 Django。
- django-crispy-forms:一个 Django 应用,他可以让你以一种非常优雅且 DRY (Don’t repeat yourself) 的方式来创建美观的表单。
- django-remote-forms:一个平台独立的 Django 表单序列化工具。
- WTForms:一个灵活的表单验证和呈现库。
- WTForms-JSON:一个 WTForms 扩展,用来处理 JSON 数据。
数据验证
数据验证库。多用于表单验证。
- Cerberus:一个映射验证器(mappings-validator)。支持多种规则,提供归一化功能,可以方便地定制为 Python 风格的 schema 定义。
- colander:一个用于对从 XML, JSON,HTML 表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统。
- kmatch:一种用于匹配/验证/筛选 Python 字典的语言。
- schema:一个用于对 Python 数据结构进行验证的库。
- Schematics:数据结构验证。
- valideer:轻量级可扩展的数据验证和适配库。
- voluptuous:一个 Python 数据验证库。主要是为了验证传入 Python 的 JSON,YAML 等数据。
- jsonschema:JSON Schema 的 python 实现,用于 JSON 数据的验证。
序列化
复杂数据类型序列化相关库。
反垃圾技术
帮助你和电子垃圾进行战斗的库。
标记
用来进行标记的库。
管理面板
管理界面库。
- Ajenti:一个你的服务器值得拥有的管理面板。
- django-suit:Django 管理界面的一个替代品(仅对于非商业用途是免费的)。
- django-xadmin:Django admin 的一个替代品,具有很多不错的功能。
- flask-admin:一个用于 Flask 的简单可扩展的管理界面框架。
- flower:一个对 Celery 集群进行实时监控和提供 web 管理界面的工具。
- Grappelli:Django 管理界面的一个漂亮的皮肤。
- Wooey:一个 Django 应用,可以为 Python 脚本创建 web 用户界面。
- django-grappelli:拥有绚丽外观的 Django Admin 界面。
- django-jet:具有改进功能的现代响应式 Django 管理界面模板。
- jet-bridge:管理面板框架,适用于任何具有良好 UI 的应用(例如 Django)。
Serverless 框架
使用 Python 开发 Serverless 模型相关的库。
- python-lambda :在 AWS Lambda 开发和部署 Python 代码的工具包。
- Zappa:在 AWS Lambda 和 API Gateway 部署 WSGI 应用的工具。
静态站点生成器
静态站点生成器是一个软件,它把文本和模板作为输入,然后输出 HTML 文件。
- Pelican:使用 Markdown 或 ReST 来处理内容, Jinja 2 来制作主题。支持 DVCS, Disqus.。AGPL 许可。
- Cactus:为设计师设计的静态站点生成器。
- Hyde:基于 Jinja2 的静态站点生成器。
- Nikola:一个静态网站和博客生成器。
- Tinkerer:Tinkerer 是一个博客引擎/静态站点生成器,由 Sphinx 驱动。
- Lektor:一个简单易用的静态 CMS 和博客引擎。
- makesite:简单轻量的站点/博客生成器(小于 130 行代码)。
进程
操作系统进程启动及通信库。
并发和并行
用以进行并发和并行操作的库。
网络
用于网络编程的库。
- asyncio:(Python 标准库) 异步 I/O,事件循环,协程以及任务。
- trio:异步并发和 I/O 友好的库。
- Twisted:一个事件驱动的网络引擎。
- pulsar:事件驱动的并发框架。
- diesel:基于 Greenlet 的事件 I/O 框架。
- pyzmq:一个 ZeroMQ 消息库的 Python 封装。
- Toapi:一个轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。
- txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。
WebSocket
帮助使用 WebSocket 的库。
WSGI 服务器
兼容 WSGI 的 web 服务器
- gunicorn:Pre-forked, 部分是由 C 语言编写的。
- uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务,由 C 语言编写。
- bjoern:异步,非常快速,由 C 语言编写。
- fapws3:异步 (仅对于网络端),由 C 语言编写。
- meinheld:异步,部分是由 C 语言编写的。
- netius:异步,非常快速。
- paste:多线程,稳定,久经考验。
- rocket:多线程。
- waitress:多线程,是它驱动着 Pyramid 框架。
- Werkzeug:一个 WSGI 工具库,驱动着 Flask,而且可以很方便大嵌入到你的项目中去。
ASGI 服务器
兼容 ASGI 的 web 服务器。
- daphne:用于 ASGI 和 ASGI-HTTP 的,支持 HTTP,HTTP2 和 WebSocket 协议的服务器。
- uvicorn:使用 uvloop 和 httptools 实现的闪电般快速的 ASGI 服务器。
RPC 服务器
兼容 RPC 的服务器。
密码学
- cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。
- hashids:在 Python 中实现 hashids 。
- Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。
- Passlib:安全密码存储/哈希库。
- PyCrypto:Python 密码学工具箱。
- PyNacl:网络和密码学(NaCl) 库的 Python 绑定。
图形用户界面
用来创建图形用户界面程序的库。
- curses:内建的 ncurses 封装,用来创建终端图形用户界面。
- enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。
- kivy:一个用来创建自然用户交互(NUI)应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。
- pyglet:一个 Python 的跨平台窗口及多媒体库。
- PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。
- PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。
- Tkinter:Tkinter 是 Python GUI 的一个事实标准库。
- Toga:一个 Python 原生的,操作系统原生的 GUI 工具包。
- urwid:一个用来创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。
- wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。
- PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。
- Flexx:Flexx 是一个纯 Python 语言编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。
- Eel:用于制作简单离线 HTML/JS GUI 应用的库。
- PySimpleGUI:tkinter,Qt,WxPython 和 Remi 的封装。
- pywebview:围绕网页视图组件的轻量级跨平台的原生包装。
- DearPyGui:一个简单的可使用 GPU 加速的 Python GUI 框架。
游戏开发
超赞的游戏开发库。
- Cocos2d:cocos2d 是一个用来开发 2D 游戏, 示例和其他图形/交互应用的框架。基于 pyglet。
- Panda3D:由迪士尼开发的 3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用 C++ 编写, 针对 Python 进行了完全的封装。
- Pygame:Pygame 是一组 Python 模块,用来编写游戏。
- PyOgre:Ogre 3D 渲染引擎的 Python 绑定,可以用来开发游戏和仿真程序等任何 3D 应用。
- PyOpenGL:OpenGL 的 Python 绑定及其相关 APIs。
- PySDL2:SDL2 库的封装,基于 ctypes。
- RenPy:一个视觉小说(visual novel)引擎。
- Arcade:一个现代 Python 框架,用于制作具有引人入胜的图形与声音的游戏。
- Harfang3D:支持3D,VR 与游戏开发的 Python 框架。
日志
用来生成和操作日志的库。
测试
进行代码库测试和生成测试数据的库。
- 测试框架
- unittest:(Python 标准库) 单元测试框架。
- nose:nose 扩展了 unittest 的功能。
- nose2
nose
的继任者,基于 unittest2
。 - contexts:一个 Python 3.3+ 的 BDD 框架。受到 C# Machine.Specifications 的启发。
- hypothesis:Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。
- mamba:Python 的终极测试工具, 拥护 BDD。
- pyshould:Should 风格的断言,基于 PyHamcrest。
- pytest:一个成熟的全功能 Python 测试工具。
- green:干净,多彩的测试工具。
- pyvows:BDD 风格的测试工具,受 Vows.js 的启发。
- Robot Framework:一个通用的自动化测试框架。
- tox:自动化测试与发布的工具,支持多个 Python 版本。
- GUI / Web 测试
- Mock 测试
- mock:(Python 标准库) 一个用于伪造测试的库。
- doublex:Python 的一个功能强大的 doubles 测试框架。
- freezegun:通过伪造日期模块来生成不同的时间。
- httmock:针对 Python 2.6+ 和 3.2+ 生成 伪造请求的库。
- httpretty:Python 的 HTTP 请求 mock 工具。
- responses:伪造 Python 中的 requests 库的一个通用库。
- VCR.py:在你的测试中记录和重放 HTTP 交互。
- mocket:gevent/asyncio/SSL 支持的 socket mock 框架。
- 对象工厂
- factoryboy:一个 Python 用的测试固件 (test fixtures) 替代库。
- mixer:另外一个测试固件 (test fixtures) 替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。
- modelmommy:为 Django 测试创建随机固件。
- 代码覆盖率
- 伪数据
- 错误处理
渗透测试
渗透测试相关框架和工具。
代码分析和 Lint 工具
进行代码分析、解析和操作代码库的库和工具。
调试工具
用来进行代码调试的库。
- 调试器
- ipdb:IPython 启用的 pdb。
- pudb:全屏,基于控制台的 Python 调试器。
- pdb++:另一种 pdb 的替代。
- pyringe:可以在 Python 进程中附加和注入代码的调试器。
- wdb:一个奇异的 web 调试器,通过 WebSockets 工作。
- winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2。
- 追踪器
- 性能分析器
- 其他
科学计算和数据分析
用来进行科学计算和数据分析的库。
- astropy:一个天文学 Python 库。
- bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程。
- bccb:生物分析相关代码集合。
- Biopython:Biopython 是一组可以免费使用的用来进行生物计算的工具。
- blaze:NumPy 和 Pandas 的大数据接口。
- cclib:一个用来解析和解释计算化学软件包输出结果的库。
- NetworkX:一个为复杂网络设计的高性能软件。
- Neupy:执行和测试各种不同的人工神经网络算法。
- NumPy:使用 Python 进行科学计算的基础包。
- Open Babel:一个化学工具箱,用来描述多种化学数据。
- Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。
- orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。
- Pandas:提供高性能,易用的数据结构和数据分析工具。
- PyDy:PyDy 是 Python Dynamics 的缩写,用来为动力学运动建模工作流程提供帮助, 基于 NumPy, SciPy, IPython 和 matplotlib。
- PyMC:马尔科夫链蒙特卡洛采样工具。
- RDKit:化学信息学和机器学习软件。
- SciPy:由一些基于 Python ,用于数学,科学和工程的开源软件构成的生态系统。
- statsmodels:统计建模和计量经济学。
- SymPy:一个用于符号数学的 Python 库。
- zipline:一个 Python 算法交易库。
- Bayesian-belief-networks:优雅的贝叶斯理念网络框架。
- AWS Data Wrangler:AWS 平台上使用的 Pandas。
- Optimus:在使用 PySpark 时,让敏捷数据科学工作流程变得简单。
- Colour:大量色彩理论转换和算法的实现。
- Karate Club:用于图形结构化数据的无监督机器学习工具箱。
- NIPY:神经影响学工具箱集合。
- ObsPy:地震学 Python 工具箱。
- QuTiP:Python 版 Quantum 工具箱。
- SimPy:一个基于过程的离散事件模拟框架。
数据可视化
进行数据可视化的库。 参见:awesome-javascript。
- matplotlib:一个 Python 2D 绘图库。
- bokeh:用 Python 进行交互式 web 绘图。
- ggplot:ggplot2 给 R 提供的 API 的 Python 版本。
- plotly:协同 Python 和 matplotlib 工作的 web 绘图库。
- pyecharts:基于百度 Echarts 的数据可视化库。
- pygal:一个 Python SVG 图表创建工具。
- pygraphviz:Graphviz 的 Python 接口。
- PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件。
- SnakeViz:一个基于浏览器的 Python’s cProfile 模块输出结果查看工具。
- vincent:把 Python 转换为 Vega 语法的转换工具。
- VisPy:基于 OpenGL 的高性能科学可视化工具。
- Altair:用于 Python 的声明式统计可视化库。
- bqplot:Jupyter Notebook 的交互式绘图库。
- Cartopy:具有 matplotlib 支持的 Python 制图库。
- Dash:构建在 Flask、React 和 Plotly 之上,旨在用于分析 Web 应用程序。
- diagrams:用图表作为代码。
- plotnine:基于ggplot2的Python图形语法。
- PyGraphviz: Graphviz 的 Python 接口。
- Seaborn:使用 Matplotlib 进行统计数据可视化。
计算机视觉
计算机视觉相关库。
深度学习
神经网络和深度学习相关框架。 也可以参考 awesome-deep-learning。
- Caffe:一个 Caffe 的 python 接口。
- Caffe2:一个轻量级的,模块化的,可扩展的深度学习框架。
- keras:以 tensorflow/theano/CNTK 为后端的深度学习封装库,快速上手神经网络。
- MXNet:一个高效和灵活的深度学习框架。
- Pytorch:一个具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架。
- SerpentAI:游戏代理框架,可使用任意视频游戏作为深度学习沙箱。
- Theano:一个快速数值计算库。
- TensorFlow:谷歌开源的最受欢迎的深度学习框架。
- skflow:一个 TensorFlow 的简化接口(模仿 scikit-learn)。
- hebel:GPU 加速的深度学习库。
- pydeep:Python 深度学习库。
机器学习
机器学习相关库,也可以参考 awesome-machine-learning。
推荐系统
用于构建推荐系统的相关库。
分布式计算
分布式计算相关的框架和库。
- dpark:Spark 的 Python 克隆版,一个类似 MapReduce 的框架。
- dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。
- luigi:这个模块帮你构建批处理作业的复杂流水线。
- mrjob:在 Hadoop 或 Amazon Web Services 上运行 MapReduce 任务。
- dask:用于分析计算的灵活的并行计算库。
- PySpark:Spark 的 Python API 。
- Ray:一个用于并行和分布式 Python 的系统,它统一了机器学习生态系统。
- faust:一个 Python 流处理库,核心思想来源 Kafka Streams。
- streamparse:运行针对事实数据流的 Python 代码。集成了 Apache Storm。
- mars:是基于张量的,用于进行大规模数据计算的统一计算框架。
函数式编程
使用 Python 进行函数式编程。
第三方 API
用来访问第三方 API 的库。 参见: List of Python API Wrappers and Libraries。
DevOps 工具
用于 DevOps 的软件和库。
任务调度
任务调度库。
- APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数。
- django-schedule:一个 Django 排程应用。
- doit:一个任务执行和构建工具。
- gunnery:分布式系统使用的多用途任务执行工具 ,具有 web 交互界面。
- Joblib:一组为 Python 提供轻量级作业流水线的工具。
- Plan:如有神助地编写 crontab 文件。
- schedule:人性化的 Python 任务调度库。
- Spiff:使用纯 Python 实现的强大的工作流引擎。
- TaskFlow:一个可以让你方便执行任务的 Python 库,一致并且可靠。
- Airflow :是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。
- Prefect:一个现代的工作流程编排框架,使构建、计划和监视健壮的数据管道变得容易。
外来函数接口
使用外来函数接口的库。
- cffi:用来调用 C 代码的外来函数接口。
- ctypes:(Python 标准库) 用来调用 C 代码的外来函数接口。
- PyCUDA:Nvidia CUDA API 的封装。
- SWIG:简化的封装和接口生成器。
重构
Python 重构相关库和工具。
- Bicycle Repair Man:Python 的重构工具。
- Bowler:适用于现代Python的安全代码重构。
- Rope:一个 Python 的重构库。
高性能
让 Python 更快的库。
- Cython:优化的 Python 静态编译器。使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升。
- CLPython:用 Common Lisp 编写的 Python 编程语言的实现。
- Grumpy:编译器比解释器更强大的 cpython2.7 替代品(alpha)。
- IronPython:用 C# 编写的 Python 编程语言的实现。
- Jython:为 JVM 用 Java 编写的 Python 编程语言的实现。
- MicroPython:精简高效的 Python 编程语言实现。
- Pyjion:基于 CoreCLR 的 Python JIT。
- Numba:Python JIT (just in time) 编译器,针对科学用的 Python ,由 Cython 和 NumPy 的开发者开发。
- PeachPy:嵌入 Python 的 x86-64 汇编器。可以被用作 Python 内联的汇编器或者是独立的汇编器,用于 Windows,Linux,OS X,Native Client 或者 Go 。
- PyPy:使用 Python 实现的 Python。解释器使用黑魔法加快 Python 运行速度且不需要加入额外的类型信息。
- Pyston:使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能。
- Stackless Python:一个强化版的 Python。
微软的 Windows 平台
在 Windows 平台上进行 Python 编程。
- Python(x,y):面向科学应用的 Python 发行版,基于 Qt 和 Spyder。
- pythonlibs:非官方的 Windows 平台 Python 扩展二进制包。
- PythonNet:Python 与 .NET 公共语言运行库 (CLR)的集成。
- PyWin32:针对 Windows 的 Python 扩展。
- WinPython:Windows 7/8 系统下便携式开发环境。
网络可视化和 SDN
用来进行网络可视化和 SDN(软件定义网络)的工具和库。
- Mininet:一款流行的网络模拟器以及用 Python 编写的 API。
- POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。
- Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。
- SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic。
- NRU:一个基于组件的软件定义网络框架。
- napalm:可跨供应商 API 来操纵网络设备。
硬件
用来对硬件进行编程的库。
- ino:操作 Arduino 的命令行工具。
- Pyro:Python 机器人编程库。
- PyUserInput:跨平台的,控制鼠标和键盘的模块。
- scapy:一个非常棒的操作数据包的库。
- wifi:一个 Python 库和命令行工具用来在 Linux 平台上操作 WiFi。
- Pingo:Pingo 为类似 Raspberry Pi,pcDuino, Intel Galileo 等设备提供统一的 API 用以编程。
- keyboard:在 Windows 和 Linux 上挂钩并模拟全局键盘事件。
- mouse:在 Windows 和 Linux 上挂钩并模拟全局鼠标事件。
兼容性
帮助从 Python 2 向 Python 3 迁移的库。
- Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层。
- Six:Python 2 和 3 的兼容性工具。
- modernize:使 Python 代码更加现代化以便最终迁移到 Python 3。
算法和设计模式
数据结构、算法和设计模式的 Python 实现。也可以参考 awesome-algorithms 。
内置类的增强版实现
一些 Python 内置类的增强版实现库。
- attrs:一个在类定义时可替换
__init__
, __eq__
, __repr__
等方法的样板。 - bidict:高效的 Pythonic 的双向映射数据结构和相关功能。
- Box:具有高级点符号访问权限的 Python 字典。
- dataclasses:(Python 标准库) 数据类。
- DottedDict:提供一种使用点路径符号访问列表和字典的方法的库。
机器人
机器人相关库。
- PythonRobotics:各种具有可视化效果的机器人算法的汇总。
- rospy:ROS (Robot Operating System) 库。
聊天工具
聊天机器人开发相关的库。
- errbot:实现 ChatOps 的最简单最受欢迎的聊天机器人。
编辑器插件和 IDE
- Emacs
- Sublime Text
- anaconda:Anaconda 可将功能齐全的 Python 开发 IDE 转换为 Sublime Text 3。
- SublimeJEDI:一个很棒的自动补全库 Jedi 的Sublime Text 插件。
- Vim
- Visual Studio
- PTVS:Visual Studio Python 工具。
- Visual Studio Code
- Python:对 Python 有丰富支持的官方 VSCode 扩展。
- IDE
- PyCharm:JetBrains 提供的商业 Python IDE,也有免费的社区版。
- spyder: 开源 Python IDE。
企业级应用集成
企业级环境中用于集成的平台与工具。
- Zato:ESB, SOA, REST, APIs 以及云的 Python 整合。
GraphQL
GraphQL 相关库。
股票金融
- QUANTAXIS:支持任务调度,分布式部署的股票/期货/期权/港股/虚拟货币的数据/回测/模拟/交易/可视化/多账户纯本地量化解决方案
- abu: 基于python的开源量化交易,量化投资架构
- Hikyuu Quant:基于C++/Python的开源量化交易研究框架,用于策略分析及回测(仅受限于数据,如有数据也可用于期货等)
- vnpy:基于Python的开源量化交易系统开发框架,整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用
杂项
不属于上面任何一个类别,但是非常有用的库。