awesome-python(python集合框架)

传说, GitHub 上有一个 Awesome – XXX 系列的资源整理,这个系列以“全”闻名,但凡是有一定知识度的领域、语言、框架等,都有自己的 awesome-xxx 系列的项目。今天我们就介绍这个系列中的Python:awesome-python,它是由 vinta 发起维护的 Python 资源列表。

awesome-python 包括了Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

地址:https://github.com/jobbole/awesome-python-cn

 

环境管理

管理 Python 版本和环境的工具

  • p:非常简单的交互式 Python 版本管理工具。
  • pyenv:简单的 Python 版本管理工具。
  • Vex:可以在虚拟环境中执行命令。
  • virtualenv:创建独立 Python 环境的工具。
  • virtualenvwrapper:virtualenv 的一组扩展。
  • buildout:在隔离环境初始化后使用声明性配置管理。

包管理

管理包和依赖的工具。

  • pip:Python 包和依赖关系管理工具。
  • pip-tools:保证 Python 包依赖关系更新的一组工具。
  • PyPI:Python 正式的第三方包软件存储库。
  • pipenv:Python 官方推荐的新一代包管理工具。
  • poetry:可完全取代 setup.py 的包管理工具。
  • conda:跨平台的 Python 二进制包管理工具。
  • Curdling:管理 Python 包的命令行工具。
  • wheel:Python 分发的新标准,意在取代 eggs。

包仓库

本地 PyPI 仓库服务和代理。

  • warehouse:下一代 PyPI。
  • bandersnatch:PyPA 提供的 PyPI 镜像工具。
  • devpi:PyPI 服务和打包/测试/分发工具。
  • localshop:本地 PyPI 服务(自定义包并且自动对 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 解析器。

  • IPython:功能丰富的工具,非常有效的使用交互式 Python。
  • bpython:界面丰富的 Python 解析器。
  • ptpython:高级交互式 Python 解析器, 构建于 python-prompt-toolkit 之上。
  • Jupyter Notebook (IPython):一个能够让你最大限度地以交互式方式使用 Python 的丰富工具包。
    • awesome-jupyter

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

  • aiofiles:基于 asyncio,提供文件异步操作。
  • imghdr:(Python 标准库)检测图片类型。
  • mimetypes:(Python 标准库)将文件名映射为 MIME 类型。
  • path.py:对 os.path 进行封装的模块。
  • pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。
  • python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。
  • Unipath:用面向对象的方式操作文件和目录。
  • watchdog:管理文件系统事件的 API 和 shell 工具。
  • PyFilesystem2:Python 的文件系统抽象层。

日期和时间

操作日期和时间的类库。

  • arrow:更好的 Python 日期时间操作类库。
  • Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。
  • dateutil:Python datetime 模块的扩展。
  • delorean:解决 Python 中有关日期处理的棘手问题的库。
  • maya:人性化的时间处理库。
  • moment:一个用来处理时间和日期的 Python 库。灵感来自于 Moment.js。
  • pendulum:一个比 arrow 更具有明确的,可预测的行为的时间操作库。
  • PyTime:一个简单易用的 Python 模块,用于通过字符串来操作日期/时间。
  • pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。
  • when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。
  • dateutil:Python 标准包 datetime 的扩展。
  • moment:一个处理日期/时间的库,灵感来自 Moment.js。
  • pytz:支持跨平台时区计算,并将 tz database 引入 Python。

文本处理

用于解析和操作文本的库。

  • 通用
    • chardet:字符编码检测器,兼容 Python 2 和 Python 3。
    • difflib:(Python 标准库)帮助我们进行差异化比较。
    • ftfy:让 Unicode 文本更完整更连贯。
    • fuzzywuzzy:模糊字符串匹配。
    • Levenshtein:快速计算编辑距离以及字符串的相似度。
    • pangu.py:在中日韩语字符和数字字母之间添加空格。
    • pypinyin:汉字拼音转换工具 Python 版。
    • shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。
    • simplejson:Python 的 JSON 编码、解码器。
    • unidecode:Unicode 文本的 ASCII 转换形式 。
    • uniout:打印可读的字符,而不是转义的字符串。
    • xpinyin:一个用于把汉字转换为拼音的库。
    • pyfiglet:figlet 的 Python 实现。
    • flashtext:一个高效的文本查找替换库。
    • textdistance:支持 30 多种算法来计算序列之间的距离。
  • Slug 化
    • awesome-slugify:一个 Python slug 化库,可以保持 Unicode。
    • python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。
    • unicode-slugify:一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。
  • 解析器
    • phonenumbers:解析,格式化,储存,验证电话号码。
    • python-phonenumbers:解析,格式化,存储,校验国际电话号码。
    • PLY:lex 和 yacc 解析工具的 Python 实现。
    • Pygments:通用语法高亮工具。
    • pyparsing:生成通用解析器的框架。
    • python-nameparser:把一个人名分解为几个独立的部分。
    • python-user-agents:浏览器 user agent 解析器。
    • sqlparse:一个无验证的 SQL 解析器。

特殊文本格式处理

一些用来解析和操作特殊文本格式的库。

  • 通用
    • tablib:一个用来处理中表格数据的模块。
  • 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
    • Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。
    • Python-Markdown:John Gruber’s Markdown 的 Python 版实现。
    • Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。
  • YAML
    • PyYAML:Python 版本的 YAML 解析器。
  • CSV
    • csvkit:用于转换和操作 CSV 的工具。
  • Archive
    • unp:一个用来方便解包归档文件的命令行工具。

自然语言处理

用来处理人类语言的库。

  • NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序。
  • gensim:人性化的话题建模库。
  • jieba:中文分词工具。
  • langid.py:独立的语言识别系统。
  • Pattern:Python 网络信息挖掘模块。
  • SnowNLP:一个用来处理中文文本的库。
  • TextBlob:为进行普通自然语言处理任务提供一致的 API。
  • TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。
  • thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包。
  • polyglot:支持数百种语言的自然语言处理管道。
  • pytext:基于 PyTouch 的自然语言模型框架。
  • PyTorch-NLP:一个支持快速深度学习 NLP 原型研究的工具包。
  • spacy:Python 和 Cython 中用于工业级自然语言处理的库。
  • Stanza:斯坦福 NLP 集团的官方 Python 库,支持 60 多种语言。
  • funNLP:中文自然语言处理的工具和数据集。
  • pkuseg-python:一个支持对不同领域进行中文分词的工具箱。

文档

用以生成项目文档的库。

  • Sphinx:Python 文档生成器。
    • awesome-sphinxdoc
  • MkDocs:对 Markdown 友好的文档生成器。
  • pdoc:一个可以替换 Epydoc 的库,可以自动生成 Python 库的 API 文档。
  • Pycco:文学编程(literate-programming)风格的文档生成器。
  • readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用。

配置

用来保存和解析配置的库。

  • config:logging 模块作者写的分级配置模块。
  • ConfigObj:INI 文件解析器,带验证功能。
  • ConfigParser:(Python 标准库) INI 文件解析器。
  • profig:通过多种格式进行配置,具有数值转换功能。
  • python-decouple:将设置和代码完全隔离。
  • hydra:一个优雅地配置复杂应用程序的框架。

命令行工具

用于创建命令行程序的库。

  • 命令行程序开发
    • cement:Python 的命令行程序框架。
    • click:一个通过组合的方式来创建精美命令行界面的包。
    • cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。
    • clint:Python 命令行程序工具。
    • docopt:Python 风格的命令行参数解析器。
    • Gooey:一条命令,将命令行程序变成一个 GUI 程序。
    • python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。
    • python-fire:Google 出品的一个基于 Python 类的构建命令行界面的库。
    • Pythonpy:在命令行中直接执行任何 Python 指令。
  • 终端呈现方式
    • asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级 API。
    • alive-progress:一款新的进度条,具有实时吞吐量信息以及非常酷的动画。
    • colorama:跨平台彩色终端文本。
    • bashplotlib:在终端中进行基本绘图。
    • rich:一个在终端中支持富文本和格式美化的 Python 库, 同时提供了日志处理程序。
    • tqdm:一个可在循环和命令行中使用的快速、可扩展的进度条。
  • 生产力工具
    • aws-cli:Amazon Web Services 的通用命令行界面。
    • caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。
    • cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。
    • doitlive:一个用来在终端中进行现场演示的工具。
    • pyftpdlib:一个速度极快和可扩展的 Python FTP 服务库。
    • howdoi:通过命令行获取即时的编程问题解答。
    • PathPicker:从 bash 输出中选出文件。
    • percol:向 UNIX shell 传统管道概念中加入交互式选择功能。
    • thefuck:修正你之前的命令行指令。
    • try:一个极其简单的命令行工具,用来试用 python 库。
    • copier:用于呈现项目模板的库和命令行实用程序。
    • Invoke:用于管理面向 shell 的子进程,同时支持将可执行的 Python 代码组织成命令行可调用的状态。
    • tmuxp: tmux 会话管理器。
  • 高级 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:为方便人使用而创建的金融数据接口库。

图像处理

用来操作图像的库.

  • pillow:Pillow 是一个更加易用版的 PIL。
  • hmap:图像直方图映射。
  • imgSeek:一个使用视觉相似性搜索一组图片集合的项目。
  • nude.py:裸体检测。
  • python-barcode:不借助其他库在 Python 程序中生成条形码。
  • pygram:类似 Instagram 的图像滤镜。
  • python-qrcode:一个纯 Python 实现的二维码生成器。
  • Quads:基于四叉树的计算机艺术。
  • scikit-image:一个用于(科学)图像处理的 Python 库。
  • thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。
  • wand:MagickWand 的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。
  • face_recognition:简单易用的 Python 人脸识别库。
  • pagan:基于输入和哈希的复古风图标(头像)生成工具。
  • PyMatting:支持 alpha matting 的库。
  • pywal:由图像生成配色方案的工具。
  • pyvips:低内存消耗且快速的图像处理库。

OCR

光学字符识别库。

  • pyocr:Tesseract 和 Cuneiform 的一个封装。
  • pytesseract:Google Tesseract OCR 的一个封装。

音频

用来操作音频的库

  • audiolazy:Python 的数字信号处理包。
  • audioread:交叉库 (GStreamer + Core Audio + MAD + FFmpeg) 音频解码。
  • beets:一个音乐库管理工具及 MusicBrainz 标签添加工具。
  • dejavu:音频指纹提取和识别。
  • django-elastic-transcoder:Django + Amazon Elastic Transcoder。
  • eyeD3:一个用来操作音频文件的工具,具体来讲就是包含 ID3 元信息的 MP3 文件。
  • id3reader:一个用来读取 MP3 元数据的 Python 模块。
  • m3u8:一个用来解析 m3u8 文件的模块。
  • mutagen:一个用来处理音频元数据的 Python 模块。
  • pydub:通过简单、简洁的高层接口来操作音频文件。
  • pyechonest:Echo Nest API 的 Python 客户端。
  • talkbox:一个用来处理演讲/信号的 Python 库。
  • TimeSide:开源 web 音频处理框架。
  • tinytag:一个用来读取 MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库。
  • mingus:一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能。
  • kapre:Keras 音频处理器。
  • librosa:音频音乐分析 Python 库。
  • matchering:用于音频母带制作的库。
  • pyAudioAnalysis:音频特征提取,分类,分段和应用。
  • beets:一个音乐库管理器和 MusicBrainz 标记器。

Video

用来操作视频和 GIF 的库。

  • moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。
  • scikit-video:SciPy 视频处理常用程序。
  • vidgear: 强大的多线程视频处理框架。

地理位置

地理编码地址以及用来处理经纬度的库。

  • GeoDjango:世界级地理图形 web 框架。
  • GeoIP:MaxMind GeoIP Legacy 数据库的 Python API。
  • geojson:GeoJSON 的 Python 绑定及工具。
  • geopy:Python 地址编码工具箱。
  • GeoIP2:GeoIP2 Webservice 客户端与数据库 Python API。
  • django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。
  • pygeoip:Python GeoIP 接口。

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 实现的数据库。

  • pickleDB:一个简单,轻量级键值储存数据库。
  • PipelineDB:流式 SQL 数据库。
  • TinyDB:一个微型的,面向文档型数据库。
  • ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。

数据库驱动

用来连接和操作数据库的库。

  • MySQL:awesome-mysql 系列
    • aiomysql:基于 asyncio 的异步 MySQL 数据库操作库。
    • mysql-python:Python 的 MySQL 数据库连接器。
    • ysqlclient:mysql-python 分支,支持 Python 3。
    • oursql:一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs。
    • PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python。
  • PostgreSQL
    • psycopg2:Python 中最流行的 PostgreSQL 适配器。
    • queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互。
    • txpostgres:基于 Twisted 的异步 PostgreSQL 驱动。
  • 其他关系型数据库
    • apsw:另一个 Python SQLite 封装。
    • dataset:在数据库中存储 Python 字典
    • pymssql:一个简单的 Microsoft SQL Server 数据库接口。
  • NoSQL 数据库
    • asyncio-redis:基于 asyncio 的 redis 客户端 (PEP 3156)。
    • cassandra-python-driver:Cassandra 的 Python 驱动。
    • HappyBase:一个为 Apache HBase 设计的,对开发者友好的库。
    • Plyvel:一个快速且功能丰富的 LevelDB 的 Python 接口。
    • py2neo:Neo4j restful 接口的 Python 封装客户端。
    • pycassa:Cassandra 的 Python Thrift 驱动。
    • PyMongo:MongoDB 的官方 Python 客户端。
    • redis-py:Redis 的 Python 客户端。
    • telephus:基于 Twisted 的 Cassandra 客户端。
    • txRedis:基于 Twisted 的 Redis 客户端。
    • kafka-python:Apache Kafka Python 客户端。
  • 异步客户端
    • motor:支持 MongoDB 的异步 Python 驱动程序。

ORM

实现对象关系映射或数据映射技术的库。

  • 关系型数据库
    • Django Models:Django 的一部分。
    • SQLAlchemy:Python SQL 工具以及对象关系映射工具。
      • awesome-sqlalchemy
    • awesome-sqlalchemy 系列
    • Peewee:一个小巧,富有表现力的 ORM。
    • PonyORM:提供面向生成器的 SQL 接口的 ORM。
    • python-sql:编写 Python 风格的 SQL 查询。
    • dataset:在数据库中存储字典,支持 SQLite,MySQL 和 PostgreSQL。
    • orator:Orator ORM,提供了一个简单而美观的 ActiveRecord 实现。
    • orm:一个异步的 ORM。
    • pony:提供面向生成器的SQL接口的ORM。
    • pydal:纯 Python 数据库抽象接口层。
  • NoSQL 数据库
    • django-mongodb-engine:Django MongoDB 后端。
    • PynamoDB:Amazon DynamoDB 的一个 Python 风格接口。
    • flywheel:Amazon DynamoDB 的对象映射工具。
    • MongoEngine:一个 Python 对象文档映射工具,用于 MongoDB。
    • hot-redis:为 Redis 提供 Python 丰富的数据类型。
    • redisco:一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。
  • 其他
    • butterdb:Google Drive 电子表格的 Python ORM。

Web 框架

全栈 Web 框架。

  • Django:Python 界最流行的 web 框架。
    • awesome-django(by shahraizali) 系列
    • awesome-django(by wsvincent) 系列
  • Flask:一个 Python 微型框架。
    • awesome-flask 系列
  • Pyramid:一个小巧,快速,接地气的开源 Python web 框架。
    • awesome-pyramid 系列
  • Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。
  • CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有 WSGI 线程池。
  • TurboGears:一个可以扩展为全栈解决

    来源:月疯

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐