《2021年python库大全》 - 作者ztloo
一、算法设计
Python的数据结构,算法和设计模式的实现。另请参阅真棒算法。
演算法
- algorithms –数据结构和算法的最小示例。
- python-ds-用于采访采访的数据结构和算法的集合。
- sortedcontainers-排序集合的快速和纯Python实现。
- TheAlgorithms-用Python实现的所有算法。
设计模式
- PyPattyrn-一个简单但有效的库,用于实现常见的设计模式。
- python-patterns -Python中设计模式的集合。
- transitions -一种轻量级的,面向对象的有限状态机实现。
- *
二、声音、视频、图像、文字处理
用于处理音频及其元数据的库。
声音的
- audioread-跨库(GStreamer +核心音频+ MAD + FFmpeg)音频解码。
- dejavu-音频指纹识别。
- kapre - Keras音频预处理器
- librosa-用于音频和音乐分析的Python库
- matchering -一个用于自动参考音频制作的库。
- mingus-带有MIDI文件和播放支持的高级音乐理论和乐谱包。
- pyAudioAnalysis-音频特征提取,分类,分段和应用。
- pydub-使用简单易用的高级界面处理音频。
- TimeSide-开放的Web音频处理框架。
Metadata
- beets-音乐库管理器和MusicBrainz标记器。
- eyeD3-一种用于处理音频文件的工具,特别是包含ID3元数据的MP3文件。
- mutagen-处理音频元数据的Python模块。
- tinytag-用于读取MP3,OGG,FLAC和Wave文件的音乐元数据的库。
用于处理视频和GIF的库。
- moviepy-用于基于脚本的电影编辑的模块,具有多种格式,包括动画GIF。
- scikit-video -SciPy的视频处理例程。
- vidgear-最强大的多线程视频处理框架。
用于处理图像的库。
- hmap-图像直方图重新映射。
- imgSeek-使用视觉相似性搜索图像集合的项目。
- nude.py-裸露检测。
- pagan -复古identicon(阿凡达)根据输入的字符串和哈希生成。
- pillow-枕头是友好的PIL叉。
- python- barcode-在Python中创建条形码,没有任何额外的依赖关系。
- pygram-类似Instagram的图像过滤器。
- PyMatting -Alpha遮罩的库。
- python-qrcode-一个纯Python QR Code生成器。
- pywal-一种从图像生成配色方案的工具。
- pyvips-具有低内存需求的快速图像处理库。
- Quads -基于四叉树的计算机艺术。
- scikit-image-用于(科学)图像处理的Python库。
- thumbor-智能影像服务。它可以按需裁剪,调整图像大小和翻转图像。
- wand - MagickWand的Python绑定,ImageMagick的C API。
用于解析和处理纯文本的库。
一般的
- chardet-与Python 2/3兼容的字符编码检测器。
- difflib-(Python标准库)用于计算增量的帮助程序。
- ftfy-自动使Unicode文本更清晰,更一致。
- Fuzzywuzzy-模糊字符串匹配。
- Levenshtein-快速计算Levenshtein距离和字符串相似度。
- pangu.py-偏执的文字间距。
- pyfiglet-用Python编写的figlet的实现。
- pypinyin-将汉字(Hanzi)转换为拼音(Pyyin)。
- textdistance-使用30多种算法计算序列之间的距离。
- unidecode -Unicode文本的ASCII音译。
Slugify
- awesome-slugify-一个可以保留unicode的Python slugify库。
- python-slugify-一个Python slugify库,它将unicode转换为ASCII。
- unicode-slugify-一种Slugifier,它以Django为依赖项生成unicode slug。
唯一标识符
- hashids-在Python中实现hashids。
- shortuuid-简洁,明确和URL安全的UUID的生成器库。
解析器
- ply -的lex和yacc解析工具的Python实现。
- pygments-通用语法荧光笔。
- pyparsing-生成解析器的通用框架。
- python-nameparser-将人名解析为它们的各个组成部分。
- python-phonenumbers-解析,格式化,存储和验证国际电话号码。
- python-user-agents-浏览器用户代理解析器。
- sqlparse-一个非验证的SQL解析器。
- *
三、日期和时间
用于处理日期和时间的库。
- Arrow-一个Python库,提供了一种明智且人性化的方法来创建,操作,格式化和转换日期,时间和时间戳。
- Chronyk-一个Python 3库,用于解析人类编写的时间和日期。
- dateutil-标准Python datetime模块的扩展。
- delorean-一个库,用于清除与日期时间有关的不便的事实。
- maya-人类的日期时间。
- moment -一个Python库用于处理日期/时间。受到Moment.js的启发。
- Pendulum-Python日期时间变得容易。
- PyTime-一个易于使用的Python模块,旨在按字符串操作日期/时间/日期时间。
- pytz-世界时区定义,现代和历史。将tz数据库带入Python。
- when.py-提供用户友好的功能来帮助执行常见的日期和时间操作。
四、爬虫
自动执行Web抓取。
- cola-分布式抓取框架。
- feedparser-通用供稿解析器。
- grab -网站抓取框架。
- MechanicalSoup-用于自动与网站进行交互的Python库。
- portia - Scrapy的视觉抓取。
- pyspider-强大的蜘蛛系统。
- robobrowser-一个简单的Pythonic库,无需独立的Web浏览器即可浏览Web。
- scrapy-快速的高级屏幕抓取和网络爬网框架。
用于提取Web内容的库。
- html2text-将HTML转换为Markdown格式的文本。
- lassie-人类的Web内容检索。
- micawber-一个小型库,用于从URL中提取丰富的内容。
- newspaper -Python中的新闻提取,文章提取和内容管理。
- python- readability - arc90的可读性工具的快速Python端口。
- requests-html –适用于人类的Pythonic HTML解析。
- sumy-自动汇总文本文档和HTML页面的模块。
- textract-从任何文档,Word,PowerPoint,PDF等中提取文本
- toapi-每个网站都提供API。
- *
五、HTML、XML
用于处理HTML和XML的库。
- BeautifulSoup-提供Pythonic惯用法来迭代,搜索和修改HTML或XML。
- bleach –基于白名单HTML清理和文本linkification库中的。
- cssutils-一个Python的CSS库。
- html5lib-一个符合标准的库,用于解析和序列化HTML文档和片段。
- lxml-一个非常快速,易于使用的通用库,用于处理HTML和XML。
- MarkupSafe-为Python实现XML / HTML / XHTML标记安全字符串。
- pyquery-用于解析HTML的类似jQuery的库。
- untangle –将XML文档转换为Python对象,以方便访问。
- WeasyPrint-用于HTML和CSS的可视渲染引擎,可以导出为PDF。
- xmldataset-简单的XML解析。
- xmltodict-使用XML就像使用JSON。
- *
六、HTTP客户端
使用HTTP的库。
- grequests-异步HTTP请求的request + gevent。
- httplib2-全面的HTTP客户端库。
- httpx-用于Python的下一代HTTP客户端。
- requests -HTTP对人类的请求。
- treq -Python请求,例如在Twisted的HTTP客户端之上构建的API。
- *
七、office模块
用于解析和处理特定文本格式的库。
General
- tablib -XLS,CSV,JSON,YAML中的表格数据集的模块。
Office
- 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格式
- PDFMiner-一种从PDF文档提取信息的工具。
- PyPDF2-一个能够拆分,合并和转换PDF页面的库。
- ReportLab-允许快速创建丰富的PDF文档。
Markdown
- Mistune-Markdown最快,功能最全的纯Python解析器。
- Python-Markdown -John Gruber的Markdown的Python实现。
YAML
- PyYAML-适用于Python的YAML实现。
CSV
- csvkit-转换为CSV并使用CSV的实用程序。
Archive
- unp-一个命令行工具,可以轻松地解压缩档案。
- *
八、序列化
用于序列化复杂数据类型的库
- marshmallow-一个轻量级的库,用于将复杂的对象与简单的Python数据类型相互转换。
- pysimdjson -一个Python绑定simdjson。
- python-rapidjson-一个Python包装周围RapidJSON。
- ultrajson-使用Python绑定用C编写的快速JSON解码器和编码器。
- *
九、代码分析、测试
_码质量检查器的工具。另请参阅[令人敬畏的静态分析](https://github.com/mre/awesome-static-
analysis)。_
代码分析
- Coala-语言独立且易于扩展的代码分析应用程序。
- code2flow-将您的Python和JavaScript代码转换为DOT流程图。
- prospector-分析Python代码的工具。
- pycallgraph-一个可视化Python应用程序流程(调用图)的库。
- vulture-查找和分析无效的Python代码的工具。
Code Linters
代码格式化程序
静态类型检查器,另请参见awesome-python-typing
- mypy-在编译期间检查变量类型。
- pyre-check-性能类型检查。
- typeshed-具有静态类型的Python库存根的集合。
静态类型注释生成器
- MonkeyType-一个用于Python的系统,通过收集运行时类型来生成静态类型注释。
- pyannotate-自动生成PEP-484注释。
- pytype -pytype检查并推断Python代码的类型-无需类型注释。
渗透测试的框架和工具。
- fsociety-渗透测试框架。
- setoolkit-社会工程的工具包。
- sqlmap-自动SQL注入和数据库接管工具。
用于测试代码库和生成测试数据的库。
测试框架
- hypothesis –假设是一个高级的Quickcheck样式基于属性的测试库。
- nose2 -
nose
基于`unittest2。的后继者。 - pytest-一个成熟的功能齐全的Python测试工具。
- Robot Framework 通用的测试自动化框架。
- unittest-(Python标准库)单元测试框架。
测试选手
GUI / Web测试
Mock
- doublex-强大的Python测试框架加倍。
- Frozengun-通过模拟datetime模块来穿越时间。
- httmock-一个针对Python 2.6+和3.2+的请求的模拟库。
- httpretty-适用于Python的HTTP请求模拟工具。
- mock-(Python标准库)一个模拟和修补库。
- mocket -具有gevent / asyncio / SSL支持的套接字模拟框架。
- responses 一个实用程序库,用于模拟请求Python库。
- VCR.py-记录并重放测试中的HTTP交互。
对象工厂
- factory_boy -Python的测试装置替代品。
- mixer-另一种灯具更换。支持Django,Flask,SQLAlchemy,Peewee等
- model_mommy-创建随机夹具以在Django中进行测试。
代码覆盖率
- coverage-代码覆盖率度量。
伪数据
用于验证数据的库。
- Cerberus-一个轻量级和可扩展的数据验证库。
- colander-验证和反序列化通过XML,JSON和HTML表单发布获得的数据。
- jsonschema - Python的JSON模式的实现。
- schema-用于验证Python数据结构的库。
- Schematics –数据结构验证。
- valideer -轻量级可扩展数据验证和适配库。
- voluptuous -的-一个Python数据验证库。
- *
十、web框架
传统的全栈Web框架。另请参阅RESTful API。
同步
异步
- Tornado-一个Web框架和异步网络库。
- *
十一、搜索
用于对数据建立索引并执行搜索查询的库和软件。
- django-haystack-模块化搜索Django。
- elasticsearch-dsl-py -Elasticsearch的官方高级Python客户端。
- elasticsearch-py - Elasticsearch的官方低层Python客户端。
- pysolr - Apache Solr的轻量级Python包装器。
- whoosh-一个快速的纯Python搜索引擎库。
- *
十二、日志记录
用于生成和使用日志的库。
- logbook - -记录Python的替换记录。
- logging-(Python标准库)Python的日志记录工具。
- loguru-旨在以Python带来令人愉悦的日志记录的库。
- sentry- python-适用于Python的Sentry SDK。
- structlog-结构化日志变得容易。
- *
十三、并发与并行
用于并发和并行执行的库。另请参阅awesome-asyncio。
- parallel.futures-(Python标准库)用于异步执行可调用对象的高级接口。
- eventlet-具有WSGI支持的异步框架。
- gevent-使用greenlet的基于协程的Python网络库。
- multiprocessing-(Python标准库)基于进程的并行性。
- scoop -Python中的可伸缩并发操作。
- uvloop-在.NET之上的
asyncio
事件循环的超快速实现libuv
。
- *
十四、任务队列
用于处理任务队列的库。
- celery-基于分布式消息传递的异步任务队列/作业队列。
- Dramatiq-用于Python 3的快速可靠的后台任务处理库。
- huey-小多线程任务队列。
- mrq-使用Redis和gevent的Python中的分布式工作者任务队列。
- rq -Python的简单作业队列。
- *
十五、自然语言处理
用于使用人类语言的图书馆。
一般的
- gensim-人类主题建模。
- langid.py-独立的语言识别系统。
- nltk-用于构建Python程序以使用人类语言数据的领先平台。
- pattern-一个Web挖掘模块。
- polyglot-支持数百种语言的自然语言管道。
- pytext的-基于PyTorch自然语言建模框架。
- PyTorch-NLP-一种工具包,可用于研究的快速深度学习NLP原型。
- spacy -一种用于Python和用Cython工业强度的自然语言处理库。
- Stanza -Stanford NLP Group的官方Python库,支持60多种语言。
中国人
- funNLP-中国NLP的工具和数据集的集合。
- jieba-最受欢迎的中文文本分割库。
- pkuseg-python-用于各种领域的中文分词的工具包。
- snownlp-用于处理中文文本的库。
- *
十六、深度学习、机器学习、计算机视觉
神经网络和深度学习框架。另请参阅真棒深度学习。
- caffe-深度学习的快速开放框架。
- keras-一个高级神经网络库,能够在TensorFlow或Theano之上运行。
- mxnet-专为效率和灵活性而设计的深度学习框架。
- pytorch-具有强大GPU加速功能的Python中的张量和动态神经网络。
- SerpentAI-游戏代理框架。使用任何视频游戏作为深度学习沙箱。
- tensorflow-由Google创建的最受欢迎的深度学习框架。
- Theano-一个用于快速数值计算的库。
_机器学习图书馆。另请参阅[很棒的机器学习](https://github.com/josephmisiti/awesome-machine-
learning#python)。_
- 健身房-用于开发和比较强化学习算法的工具包。
- H2O-开源快速可扩展机器学习平台。
- 指标-机器学习评估指标。
- NuPIC -Numenta智能计算平台。
- scikit-learn-最受欢迎的机器学习Python库。
- Spark ML - Apache Spark的可扩展机器学习库。
- vowpal_porpoise-用于Vowpal Wabbit的轻量级Python包装器。
- xgboost-一个可扩展,可移植和分布式的梯度增强库。
- MindsDB -MindsDB是现有数据库的开源AI层,可让您使用标准查询轻松地开发,训练和部署最新的机器学习模型。
计算机视觉图书馆。
- EasyOCR-支持40多种语言的即用型OCR。
- 人脸识别-简单的人脸识别库。
- Kornia - PyTorch的开源可区分计算机视觉库。
- OpenCV-开源计算机视觉库。
- pytesseract - Google Tesseract OCR的包装。
- SimpleCV-用于构建计算机视觉应用程序的开源框架。
- tesserocr-
tesseract-ocr
用于OCR的API的另一种简单,对枕头友好的包装。
- *
十七、数据分析、可视化
用于数据分析的库。
- AWS Data Wrangler -AWS上的Pandas。
- Blaze -NumPy和Pandas连接到大数据。
- Pandas界面中的Open Mining-商业智能(BI)。
- Optimus –敏捷数据科学的工作流程变得容易与PySpark。
- Orange –通过可视化编程或脚本进行数据挖掘,数据可视化,分析和机器学习。
- Pandas-一个提供高性能,易于使用的数据结构和数据分析工具的库。
_用于可视化数据的库。另请参阅[awesome-javascript](https://github.com/sorrycc/awesome-
javascript#data-visualization)。_
- Altair-用于Python的声明性统计可视化库。
- Bokeh-用于Python的交互式Web绘图。
- bqplot -Jupyter Notebook的交互式绘图库
- Cartopy-具有matplotlib支持的制图python库
短跑-建立在烧瓶顶部,反应,Plotly旨在分析Web应用程序。
- 图表-图表为代码。
- Matplotlib-一个Python 2D绘图库。
- plotnine-基于ggplot2的Python图形语法。
- Pygal-一个Python SVG图表创建器。
- PyGraphviz - Graphviz的Python接口。
- PyQtGraph-交互式和实时2D / 3D /图像绘制以及科学/工程小部件。
- Seaborn -使用Matplotlib统计数据可视化。
- VisPy-基于OpenGL的高性能科学可视化。
- *
十八、数据库驱动程序
用于连接和操作数据库的库。
MySQL-很棒的MySQL
- mysqlclient-支持Python 3的MySQL连接器(mysql-python fork)。
- PyMySQL-与mysql-python兼容的纯Python MySQL驱动程序。
PostgreSQL-很棒的Postgres
SQlite-很棒的SQLite
- sqlite3-(Python标准库)与DB-API 2.0兼容的SQlite接口
- SuperSQLite-建立在apsw之上的增压SQLite库。
其他关系数据库
- pymssql -Microsoft SQL Server的简单数据库接口。
- clickhouse-driver-具有ClickHouse本地接口的Python驱动程序。
NoSQL数据库
- cassandra-driver -Apache Cassandra的Python驱动程序。
- happybase -Apache HBase的开发人员友好型库。
- kafka-python -Apache Kafka的Python客户端。
- py2neo-用于Neo4j的客户端库和工具包。
- pymongo -MongoDB的官方Python客户端。
- redis-py -Redis的Python客户端。
异步客户端
- motor -MongoDB的异步Python驱动程序。
- *
十九、DevOps工具
DevOps的软件和库。
配置管理
- ansible-一个非常简单的IT自动化平台。
- cloudinit-一个多分发包,用于处理云实例的早期初始化。
- OpenStack-用于构建私有和公共云的开源软件。
- pyinfra-通用的CLI工具和python库,可自动执行基础架构。
- saltstack-基础结构自动化和管理系统。
SSH样式的部署
流程管理
- honcho - Foreman的Python克隆,用于管理基于Procfile的应用程序。
- supervisor -用于UNIX监事过程控制系统。
监控方式
- psutil-跨平台的流程和系统实用程序模块。
后备
- BorgBackup-具有压缩和加密功能的重复数据删除存档器。
其他
- *
二十、分布式计算
分布式计算的框架和库。
批量处理
流处理
- faust-流处理库,将想法从Kafka Streams移植到Python。
- streamparse-通过Apache Storm针对实时数据流运行Python代码。
- *
二十一、配置、打包构建
用于存储和解析配置选项的库。
- configobj-带有验证的INI文件解析器。
- configparser-(Python标准库)INI文件解析器。
- hydra -Hydra是用于优雅配置复杂应用程序的框架。
- profig-使用值转换从多种格式进行配置。
- python-decouple-严格将设置与代码分开。
用于创建打包的可执行文件以进行发行的库。
- dh-virtualenv-以Debian软件包的形式构建和分发virtualenv。
- Nuitka-将脚本,模块,程序包编译为可执行文件或扩展模块。
- py2app-冻结Python脚本(Mac OS X)。
- py2exe-冻结Python脚本(Windows)。
- pyarmor-一种用于混淆python脚本,将混淆后的脚本绑定到固定计算机或使混淆后的脚本失效的工具。
- PyInstaller-将Python程序转换为独立的可执行文件(跨平台)。
- pynsist-用于构建Windows安装程序的工具,安装程序将Python本身捆绑在一起。
- shiv-命令行实用程序,用于构建完全独立的zipapp(PEP 441),但包括其所有依赖项。
- *
二十二、虚拟环境
用于Python版本和虚拟环境管理的库。
- pyenv-简单的Python版本管理。
- virtualenv-创建隔离的Python环境的工具。
- *
二十三、界面开发
用于处理图形用户界面应用程序的库。
- curses - -内置包装器ncurses的用于创建终端GUI的应用程序。
- Eel-一个用于制作简单的类似于电子的脱机HTML / JS GUI应用程序的库。
- enaml-使用声明性语法(如QML)创建漂亮的用户界面。
- Flexx -Flexx是用于创建GUI的纯Python工具包,它使用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本机,OS本机GUI工具箱。
- urwid-一个用于创建终端GUI应用程序的库,该库对小部件,事件,丰富的颜色等具有强大的支持。
- wxPython -wxWidgets C ++类库与Python的混合。
- DearPyGui-一个简单的GPU加速的Python GUI框架
- *
二十四、游戏开发
很棒的游戏开发库。
- 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 -SDL2库的基于ctypes的包装器。
- RenPy-一个视觉小说引擎
- *
二十五、任务调度器
用于计划作业的库。
- Airflow 气流是一个以编程方式编写,安排和监视工作流的平台。
- APScheduler-轻巧但功能强大的进程内任务计划程序,可让您计划功能。
- django-schedule -Django的日历应用程序。
- doit-一个任务运行器和构建工具。
- gunnery -具有基于Web界面的分布式系统的多用途任务执行工具。
- Joblib-一套在Python中提供轻量级流水线的工具。
- Plan -像用吊饰一样用Python编写crontab文件。
- Prefect-一个现代的工作流程编排框架,可轻松构建,调度和监视强大的数据管道。
- schedule-针对人类的Python作业调度。
- Spiff-用纯Python实现的功能强大的工作流引擎。
- TaskFlow-一个Python库,可帮助简化,一致且可靠的任务执行
- *
二十六、科学计算
用于科学计算的图书馆。另请参见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中的Quantum Toolbox。
- RDKit-化学信息学和机器学习软件。
- SciPy-用于数学,科学和工程的基于Python的开源软件生态系统。
- SimPy-一个基于过程的离散事件模拟框架。
- statsmodels -Python中的统计建模和计量经济学。
- SymPy-一个用于符号数学的Python库。
- Zipline-一个Pythonic算法交易库。
- *
RPC
RPC兼容服务器。
- RPyC(远程Python调用)-用于Python的透明且对称的RPC库
- zeroRPC -zerorpc是基于ZeroMQ和MessagePack的灵活RPC实现。
- *