更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

Python库之多使其无法不强大【上】

  • 发布:Python培训
  • 来源:编程Python新视野
  • 时间:2019-05-09 13:19

很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。文章较长,所以小编将文章分为了上下,此篇为上部分

我们要做什么?

基于 awesome-python 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。

整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:

《Scrapy:Python的爬虫框架》

《Flask:一个使用Python编写的轻量级Web应用框架》

环境管理

管理 Python 版本和环境的工具

p:非常简单的交互式 python 版本管理工具。

pyenv:简单的 Python 版本管理工具。

Vex:可以在虚拟环境中执行命令。

virtualenv:创建独立 Python 环境的工具。

virtualenvwrapper:virtualenv 的一组扩展。

包管理

管理包和依赖的工具。

pip:Python 包和依赖关系管理工具。

pip-tools:保证 Python 包依赖关系更新的一组工具。

conda:跨平台,Python 二进制包管理工具。

Curdling:管理 Python 包的命令行工具。

wheel:Python 分发的新标准,意在取代 eggs。

包仓库

本地 PyPI 仓库服务和代{过}{滤}理。

warehouse:下一代 PyPI。

Warehouse:PyPA 提供的 PyPI 镜像工具。

devpi:PyPI 服务和打包/测试/分发工具。

localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。

分发

打包为可执行文件以便分发。

PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。

dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。

Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。

py2app:将 Python 脚本变为独立软件包(Mac OS X)。

py2exe:将 Python 脚本变为独立软件包(Windows)。

pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。

构建工具

将源码编译成软件。

buildout:一个构建系统,从多个组件来创建,组装和部署应用。

BitBake:针对嵌入式 Linux 的类似 make 的构建工具。

fabricate:对任何语言自动找到依赖关系的构建工具。

PlatformIO:多平台命令行构建工具。

PyBuilder:纯 Python 实现的持续化构建工具。

SCons:软件构建工具。官网

交互式解析器

交互式 Python 解析器。

IPython:功能丰富的工具,非常有效的使用交互式 Python。

bpython:界面丰富的 Python 解析器。

ptpython:高级交互式Python解析器, 构建于python-prompt-toolkit 之上。

文件

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

imghdr:(Python 标准库)检测图片类型。

mimetypes:(Python 标准库)将文件名映射为 MIME 类型。

path.py:对 os.path 进行封装的模块。

pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。

python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。

Unipath:用面向对象的方式操作文件和目录。

watchdog:管理文件系统事件的 API 和 shell 工具官网

日期和时间

操作日期和时间的类库。

arrow:更好的 Python 日期时间操作类库。

Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。

dateutil:Python datetime 模块的扩展。

delorean:解决 Python 中有关日期处理的棘手问题的库。

moment:一个用来处理时间和日期的Python库。灵感来自于Moment.js。

PyTime:一个简单易用的Python模块,用于通过字符串来操作日期/时间。

pytz:现代以及历史版本的世界时区定义。将时区数据库引入Python。

when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。

文本处理

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

通用

chardet:字符编码检测器,兼容 Python2 和 Python3。

difflib:(Python 标准库)帮助我们进行差异化比较。

ftfy:让Unicode文本更完整更连贯。

fuzzywuzzy:模糊字符串匹配。

Levenshtein:快速计算编辑距离以及字符串的相似度。

pangu.py:在中日韩语字符和数字字母之间添加空格。

yfiglet-figlet:pyfiglet -figlet 的 Python实现

shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。

unidecode:Unicode 文本的 ASCII 转换形式 。

uniout:打印可读的字符,而不是转义的字符串。

xpinyin:一个用于把汉字转换为拼音的库。

simplejson:Python的JSON编码、解码器。

Slug化

awesome-slugify:一个 Python slug 化库,可以保持 Unicode。

python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。

unicode-slugify:一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。

解析器

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 文件的库。

python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。

unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。

XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。

xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。

xlwt:读写 Excel 文件的数据和格式信息。

relatorio:模板化OpenDocument 文件。

PDF

PDFMiner:一个用于从PDF文档中抽取信息的工具。

PyPDF2:一个可以分割,合并和转换 PDF 页面的库。

ReportLab:快速创建富文本 PDF 文档。

Markdown

Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。

Python-Markdown:John Gruber’s Markdown 的 Python 版实现。

Python-Markdiwn2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。

YAML

PyYAML:Python 版本的 YAML 解析器。

CSV

csvkit:用于转换和操作 CSV 的工具。

Archive

unp:一个用来方便解包归档文件的命令行工具。

自然语言处理

用来处理人类语言的库。

NLTK:一个先进的平台,用以构建处理人类语言数据的 Python 程序。

jieba:中文分词工具。

langid.py:独立的语言识别系统。

Pattern:Python 网络信息挖掘模块。

SnowNLP:一个用来处理中文文本的库。

TextBlob:为进行普通自然语言处理任务提供一致的 API。

TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。

文档

用以生成项目文档的库。

Sphinx:Python 文档生成器。官网

awesome-sphinxdoc:官网

MkDocs:对 Markdown 友好的文档生成器。官网

pdoc:一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。官网

Pycco:文学编程(literate-programming)风格的文档生成器。官网

配置

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

config:logging 模块作者写的分级配置模块。官网

ConfigObj:INI 文件解析器,带验证功能。官网

ConfigParser:(Python 标准库) INI 文件解析器。官网

profig:通过多种格式进行配置,具有数值转换功能。官网

python-decouple:将设置和代码完全隔离。官网

命令行工具

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

命令行程序开发

asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。官网

cement:Python 的命令行程序框架。官网

click:一个通过组合的方式来创建精美命令行界面的包。官网

cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。官网

clint:Python 命令行程序工具。官网

colorama:跨平台彩色终端文本。官网

docopt:Python 风格的命令行参数解析器。官网

Gooey:一条命令,将命令行程序变成一个 GUI 程序。官网

python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。官网

Pythonpy:在命令行中直接执行任何Python指令。官网

生产力工具

aws-cli:Amazon Web Services 的通用命令行界面。官网

bashplotlib:在终端中进行基本绘图。官网

caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。官网

cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。官网

doitlive:一个用来在终端中进行现场演示的工具。官网

howdoi:通过命令行获取即时的编程问题解答。官网

httpie:一个命令行HTTP 客户端,cURL 的替代品,易用性更好。官网

PathPicker:从bash输出中选出文件。官网

percol:向UNIX shell 传统管道概念中加入交互式选择功能。官网

SAWS:一个加强版的 AWS 命令行。官网

thefuck:修正你之前的命令行指令。官网

mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。官网

pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。官网

try:一个从来没有更简单的命令行工具,用来试用Python库。官网

下载器

用来进行下载的库.

s3cmd:一个用来管理Amazon S3 和 CloudFront 的命令行工具。官网

s4cmd:超级 S3 命令行工具,性能更加强劲。官网

you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。官网

youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。官网

图像处理

用来操作图像的库.

pillow:Pillow 是一个更加易用版的 PIL。官网

hmap:图像直方图映射。官网

imgSeek:一个使用视觉相似性搜索一组图片集合的项目。官网

nude.py:裸体检测。官网

pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。官网

pygram:类似 Instagram 的图像滤镜。官网

python-qrcode:一个纯 Python 实现的二维码生成器。官网

Quads:基于四叉树的计算机艺术。官网

scikit-image:一个用于(科学)图像处理的 Python 库。官网

thumbor:一个小型图像服务,具有剪裁,尺寸重设和翻转功能。官网

wand:MagickWand的Python 绑定。MagickWand 是 ImageMagick的 C API 。官网

OCR

光学字符识别库。

pyocr:Tesseract 和 Cuneiform 的一个封装(wrapper)。官网

pytesseract:Google Tesseract OCR 的另一个封装(wrapper)。官网

python-tesseract - 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 文件和回放功能。官网

Video

用来操作视频和GIF的库。

moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。官网

scikit-video:SciPy 视频处理常用程序。官网

地理位置

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

GeoDjango:世界级地理图形 web 框架。官网

GeoIP:MaxMind GeoIP Legacy 数据库的 Python API。官网

geojson:GeoJSON 的 Python 绑定及工具。官网

geopy:Python 地址编码工具箱。官网

pygeoip:纯 Python GeoIP API。官网

django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段。官网

HTTP

使用HTTP的库。

requests:人性化的HTTP请求库。官网

grequests:requests 库 + gevent ,用于异步 HTTP 请求.官网

httplib2:全面的 HTTP 客户端库。官网

treq:类似 requests 的Python API 构建于 Twisted HTTP 客户端之上。官网

urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。官网

数据库

Python实现的数据库。

pickleDB:一个简单,轻量级键值储存数据库。官网

PipelineDB:流式 SQL 数据库。官网

TinyDB:一个微型的,面向文档型数据库。官网

ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库。官网

数据库驱动

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

MySQL:awesome-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 数据库

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 客户端。官网

ORM

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

关系型数据库

Django Models:Django 的一部分。官网

SQLAlchemy:Python SQL 工具以及对象关系映射工具。官网

awesome-sqlalchemy系列

Peewee:一个小巧,富有表达力的 ORM。官网

PonyORM:提供面向生成器的 SQL 接口的 ORM。官网

python-sql:编写 Python 风格的 SQL 查询。官网

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系列

Flask:一个 Python 微型框架。官网

awesome-flask系列

pyramid:一个小巧,快速,接地气的开源Python web 框架。

awesome-pyramid系列

Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。官网

CherryPy:一个极简的 Python web 框架,服从 HTTP/1.1 协议且具有WSGI 线程池。官网

TurboGears:一个可以扩展为全栈解决方案的微型框架。官网

web.py:一个 Python 的 web 框架,既简单,又强大。官网

web2py:一个全栈 web 框架和平台,专注于简单易用。官网

Tornado:一个web 框架和异步网络库。官网

权限

允许或拒绝用户访问数据或功能的库。

Carteblanche:Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.官网

django-guardian:Django 1.2+ 实现了单个对象权限。官网

django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库。官网

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。官网

电子商务

用于电子商务以及支付的框架和库。

django-oscar:一个用于 Django 的开源的电子商务框架。官网

django-shop:一个基于 Django 的店铺系统。官网

Cartridge:一个基于 Mezzanine 构建的购物车应用。官网

shoop:一个基于 Django 的开源电子商务平台。官网

alipay:非官方的 Python 支付宝 API。官网

merchant:一个可以接收来自多种支付平台支付的 Django 应用。官网

money:货币类库with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.官网

python-currencies:显示货币格式以及它的数值。官网

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

cornice:一个Pyramid 的 REST 框架 。官网

与框架无关的

falcon:一个用来建立云 API 和 web app 后端的高性能框架。官网

sandman:为现存的数据库驱动系统自动创建 REST APIs 。官网

restless:框架无关的 REST 框架 ,基于从 Tastypie 学到的知识。官网

ripozo:快速创建 REST/HATEOAS/Hypermedia APIs。官网

验证

实现验证方案的库。

OAuth

Authomatic:简单但是强大的框架,身份验证/授权客户端。官网

django-allauth:Django 的验证应用。官网

django-oauth-toolkit:为 Django 用户准备的 OAuth2。官网

django-oauth2-provider:为 Django 应用提供 OAuth2 接入。官网

Flask-OAuthlib:OAuth 1.0/a, 2.0 客户端实现,供 Flask 使用。官网

OAuthLib:一个 OAuth 请求-签名逻辑通用、 完整的实现。官网

python-oauth2:一个完全测试的抽象接口。用来创建 OAuth 客户端和服务端。官网

python-social-auth:一个设置简单的社会化验证方式。官网

rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 库。官网

sanction:一个超级简单的OAuth2 客户端实现。官网

其他

jose:JavaScript 对象签名和加密草案的实现。官网

PyJWT:JSON Web 令牌草案 01。官网

python-jws:JSON Web 签名草案 02 的实现。官网

python-jwt:一个用来生成和验证 JSON Web 令牌的模块。官网

模板引擎

模板生成和词法解析的库和工具。

Jinja2:一个现代的,对设计师友好的模板引擎。官网

Chameleon:一个 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 进行了速度上的优化。官网

Genshi:Python 模板工具,用以生成 web 感知的结果。官网

Mako:Python 平台的超高速轻量级模板。官网

Queue

处理事件以及任务队列的库。

celery:一个异步任务队列/作业队列,基于分布式消息传递。官网

huey:小型多线程任务队列。官网

mrq:Mr. Queue -一个 Python 的分布式 worker 任务队列, 使用 Redis 和 gevent。官网

rq:简单的 Python 作业队列。官网

simpleq:一个简单的,可无限扩张的,基于亚马逊 SQS 的队列。官网

搜索

对数据进行索引和执行搜索查询的库和软件。

django-haystack:Django 模块化搜索。官网

elasticsearch-py:Elasticsearch 的官方底层 Python 客户端。官网

elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端。官网

solrpy:solr的 Python 客户端。官网

Whoosh:一个快速的纯 Python 搜索引擎库。官网

动态消息

用来创建用户活动的库。

django-activity-stream:从你的站点行为中生成通用活动信息流。官网

Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。官网

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:为Python选择一个更快的JSON库
下一篇:Python库之多使其无法不强大【下】

零基础Python教程-多进程

Python中字典合并的实现方法

python中的logging日志模块

零基础Python教程-多线程

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省