Python 生态,向来以各种类库齐全而闻名,这也是这门语言如此受欢迎的重要原因。今天萝卜哥就给大家分享一下这几天的战果,宵衣旰食,不眠不休的整理了近千个 Python 库,收藏的同时,给个在看不为过吧!
数据处理
文本处理
- chardet:字符编码检测器,可以自动检测文本、网页、xml的编码
- difflib:(Python 标准库)帮助我们进行差异化比较
- ftfy:让 Unicode 文本更完整更连贯
- fuzzywuzzy:模糊字符串匹配
- Levenshtein:快速计算编辑距离以及字符串的相似度
- pangu.py:在中日韩语字符和数字字母之间添加空格
- pypinyin:汉字拼音转换工具 Python 版
- shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID
- simplejson:Python 的 JSON 编码、解码器
- unidecode:Unicode 文本的 ASCII 转换形式
- uniout:打印可读的字符,而不是转义的字符串
- xpinyin:一个用于把汉字转换为拼音的库
- yfiglet-figlet:pyfiglet -figlet 的 Python 实现
- flashtext: 一个高效的文本查找替换库
- esmre:正则表达式的加速器
- awesome slugify:一个 Python slugify 库,用于处理 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:用来处理表格数据的模块
- Marmir:把输入的 Python 数据结构转换为电子表单
- openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库
- pyexcel:一个提供统一 API,用来读写、操作 Excel 文件的库
- python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件
- relatorio:模板化 OpenDocument 文件
- unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换
- XlsxWriter:一个用于创建 Excel.xlsx 文件的 Python 模块
- xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议
- xlwt/xlrd:读写 Excel 文件的数据和格式信息
- PDFMiner:一个用于从 PDF 文档中抽取信息的工具
- PyPDF2:一个可以分割,合并和转换 PDF 页面的库
- ReportLab:快速创建富文本 PDF 文档
- Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器
- Python-Markdown:John Gruber’s Markdown 的 Python 版实现
- Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展
- PyYAML:Python 版本的 YAML 解析器
- csvkit:用于转换和操作 CSV 的工具
- unp:一个用来方便解包归档文件的命令行工具
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
- htmlparser,官方版解析 HTML DOM 树
文件处理
- aiofiles:基于 asyncio,提供文件异步操作
- imghdr:(Python 标准库)检测图片类型
- mimetypes:(Python 标准库)将文件名映射为 MIME 类型
- path.py:对 os.path 进行封装的模块
- pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库
- python-magic:文件类型检测的第三方库 libmagic 的 Python 接口
- Unipath:用面向对象的方式操作文件和目录
- watchdog:管理文件系统事件的 API 和 shell 工具
- Unipath:面向对象的文件/目录的操作工具包
- pathlib:(Python 3.4版已经作为Python标准库),一个跨平台,面向 path 的函数库
- pickle/cPickle:Python 的 pickle 模块实现了基本的数据序列和反序列化
配置文件处理
- ConfigParser:Python 标准库,ini 文件解析器
- configobj:ini 文件解析器
- profig:多格式配置转换工具
- config:logging 模块作者写的分级配置模块
- python-decouple:将设置和代码完全隔离
文档相关
- Sphinx:Python 文档生成器
- mkdocs:Markdown 格式文档生成器
- pycco:简单快速、编程风格的文档生成器
- pdoc:自动生成的 Python 库 API 文档 epydoc,从源码注释中生成各种格式文档的工具
- readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用
日志管理
- logging:(Python 标准库) 为 Python 提供日志功能
- logbook:Logging 库的替代品
- Eliot:为复杂的和分布式系统创建日志
- Raven:Sentry 的 Python 客户端
- Sentry:实时记录和收集日志的服务器
日期和时间
- arrow:非常好的 Python 日期时间操作类库
- Chronyk:Python 3 的类库,用于解析手写格式的时间和日期
- dateutil:Python datetime 模块的扩展
- delorean:解决 Python 中有关日期处理的棘手问题的库
- maya:人性化的时间处理库
- moment:一个用来处理时间和日期的 Python 库,灵感来自于 Moment.js
- pendulum:一个比 arrow 更具有明确的、可预测行为的时间操作库
- PyTime:一个简单易用的 Python 模块,用于通过字符串来操作日期/时间
- pytz:现代以及历史版本的世界时区定义,将时区数据库引入 Python
- when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作
图像
图像处理
- 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
- face_recognition:简单易用的 python 人脸识别库
OCR
- pyocr:Tesseract 和 Cuneiform 的一个封装(wrapper)
- pytesseract:Google Tesseract OCR 的另一个封装(wrapper)
- python-tesseract:Google Tesseract OCR 的一个包装类
网络相关
下载
- s3cmd:一个用来管理 Amazon S3 和 CloudFront 的命令行工具
- s4cmd:超级 S3 命令行工具,性能更加强劲
- you-get:一个 YouTube/Youku/Niconico 视频下载器,使用 Python3 编写
- youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频
- Coursera:可以从 http://coursera.org 下载视频
- subliminal,命令行工具,搜索和下载字幕的函数库
HTTP
- aiohttp:基于 asyncio 的异步 HTTP 网络库
- requests:人性化的 HTTP 请求库
- grequests:requests 库 + gevent ,用于异步 HTTP 请求
- httplib2:全面的 HTTP 客户端库
- treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上
- urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库
网络可视化
- Mininet:一款流行的网络模拟器以及用 Python 编写的 API
- POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台
- Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力
- SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic
- NRU:一个基于组件的软件定义网络框架
URL 处理
- furl:一个让处理 URL 更简单小型 Python 库
- purl:一个简单的、不可变的 URL 类,具有简洁的 API 来进行询问和处理
- pyshorteners:一个纯 Python URL 缩短库
- shorturl:生成短小 URL 和类似 bit.ly 短链的 Python 实现
网络爬虫
- Scrapy:一个快速高级的屏幕爬取及网页采集框架
- cola:一个分布式爬虫框架
- Demiurge:基于 PyQuery 的爬虫微型框架
- feedparser:通用 feed 解析器
- Grab:站点爬取框架
- MechanicalSoup:用于自动和网络站点交互的 Python 库
- portia:Scrapy 可视化爬取
- pyspider:一个强大的爬虫系统
- RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器
网页内容提取
- Haul:一个可以扩展的图像爬取工具
- html2text:将 HTML 转换为 Markdown 格式文本
- lassie:人性化的网页内容检索库
- micawber:一个小型网页内容提取库,用来从 URLs 提取富内容
- newspaper:使用 Python 进行新闻提取,文章提取以及内容策展
- opengraph:一个用来解析开放内容协议(Open Graph Protocol)的 Python 模块
- python-goose:HTML 内容/文章提取器
- python-readability:arc90 公司 readability 工具的 Python 高速端口
- sanitize:为杂乱的数据世界带来调理性
- sumy:一个为文本文件和 HTML 页面进行自动摘要的模块
- textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等
- mechanize:网页浏览编程工具
WebSocket
- AutobahnPython:给 Python 、使用的 WebSocket & WAMP 基于 Twisted 和 asyncio
- Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn)
- django-socketio:给 Django 用的 WebSockets
- WebSocket-for-Python:为 Python2/3 以及 PyPy 编写的 WebSocket 客户端和服务器库
RPC
- SimpleJSONRPCServer:这个库是 JSON-RPC 规范的一个实现
- SimpleXMLRPCServer:(Python 标准库) 简单的 XML-RPC 服务器实现,单线程
- zeroRPC:zerorpc 是一个灵活的 RPC 实现,基于 ZeroMQ 和 MessagePack
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+ 的异步网络框架
- Karrigell:简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库
- PyDBLitewebpy:一个小巧灵活的 Web 框架,虽然简单但是功能强大
- Quixote:一个 Web 开发框架
- Grok:基于 Zope3 的 Web 框架
- Bluebream:开源的 Web 应用服务器,原名Zope3
- guava:轻量级,高性能的 Python Web 框架,采用 c 语言编写
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
Web 权限/安全
- Carteblanche:站在用户和设计者角度开发的一个代码对齐模块,很好地处理了代码导航及权限
- django-guardian:Django 1.2+ 实现了单个对象权限
- django-rules:一个小巧但是强大的应用,提供对象级别的权限管理,且不需要使用数据库
- Flask-OAuthlib:Flask的OAuth工具包sanction,制裁,简单的oauth2客户端
- django-oauth-toolkit:为 Django 用户准备的 OAuth2
- django-allauth:Django 的验证应用
- Authomatic:简单但是强大的框架,身份验证/授权客户端
商务框架
- django-oscar:一个用于 Django 的开源的电子商务框架
- django-shop:一个基于 Django 的店铺系统
- Cartridge:一个基于 Mezzanine 构建的购物车应用
- shoop:一个基于 Django 的开源电子商务平台
- alipay:非官方的 Python 支付宝 API
- merchant:一个可以接收来自多种支付平台支付的 Django 应用
- money:一个货币类库,带有可选的 CLDR 后端本地化格式,提供可扩展的货币兑换解决方案
- python-currencies:显示货币格式以及它的数值
Restful API
- django-rest-framework:一个强大灵活的工具,用来构建 web API
- django-tastypie:为 Django 应用开发 API
- django-formapi:为 Django 的表单验证,创建 JSON APIs
- 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 等驱动
- cornice:一个 Pyramid 的 REST 框架
- falcon:一个用来建立云 API 和 Web app 后端的高性能框架
- sandman:为现存的数据库驱动系统自动创建 REST APIs
- restless:框架无关的 REST 框架,借鉴了 Tastypie
- ripozo:快速创建 REST/HATEOAS/Hypermedia APIs
模板引擎
- Jinja2:一个现代的,对设计师友好的模板引擎
- Chameleon:一个 HTML/XML 模板引擎,模仿了 ZPT(Zope Page Templates), 进行了速度上的优化
- Genshi:Python 模板工具,用以生成 Web 感知的结果
- Mako:Python 平台的超高速轻量级模板
队列
- celery:一个异步任务队列/作业队列,基于分布式消息传递
- huey:小型多线程任务队列
- mrq:一个 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 创建动态消息和通知系统
资源管理
- django-compressor:将链接和内联的 JavaScript 或 CSS 压缩到一个单独的缓存文件中
- django-storages:一个针对 Django 的自定义存储后端的工具集合
- fanstatic:打包、优化,并且把静态文件依赖作为 Python 的包来提供
- File Conveyor:一个后台驻留的程序,用来发现和同步文件到 CDNs,S3 和 FTP
- Flask-Assets:帮你将 Web 资源整合到你的 Flask app 中
- jinja-assets-compressor:一个 Jinja 扩展,用来编译和压缩你的资源
- webassets:为你的静态资源打包、优化和管理生成独一无二的缓存 URL
缓存
- Beaker:一个缓存会话的库,可以用在 Web 应用和独立 Python 脚本和应用上
- django-cache-machine:Django 模型的自动缓存和失效工具
- django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM
- django-viewlet:渲染模板,同时具有额外的缓存控制功能
- dogpile.cache:dogpile.cache 是 Beaker 的下一代替代品,是由同一作者开发
- HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能
- johnny-cache:django 应用缓存框架
- pylibmc:libmemcached 接口的 Python 封装
表单
- Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发
- django-bootstrap3:集成了 Bootstrap3 的 Django
- django-crispy-forms:一个 Django 应用,他可以让你以一种非常优雅且 DRY(Don't repeat yourself) 的方式来创建美观的表单
- django-remote-forms:一个平台独立的 Django 表单序列化工具
- WTForms:一个灵活的表单验证和呈现库
- WTForms-JSON:一个 WTForms 扩展,用来处理 JSON 数据
数据验证
- Cerberus:一个映射验证器(mappings-validator)
- colander:一个用于对从 XML, JSON,HTML 表单获取的数据或其他同样简单的序列化数据进行验证和反序列化的系统
- kmatch:一种用于匹配/验证/筛选 Python 字典的语言
- schema:一个用于对 Python 数据结构进行验证的库
- Schematics:数据结构验证
- valideer:轻量级可扩展的数据验证和适配库
- voluptuous:一个 Python 数据验证库,主要是为了验证传入 Python 的 JSON,YAML 等数据
电子邮件
- django-celery-ses:带有 AWS SES 和 Celery 的 Django email 后端
- envelopes:非常人性化的电子邮件库
- flanker:一个 email 地址和 Mime 解析库
- imbox:Python IMAP 库
- inbox.py:Python SMTP 服务器
- inbox:一个开源电子邮件工具箱
- lamson:Python 风格的 SMTP 应用服务器
- mailjet:Mailjet API 实现,用来提供批量发送邮件,统计等功能
- marrow.mailer:高性能可扩展邮件分发框架
- modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI
- pyzmail:创建、发送和解析电子邮件
- Talon:Mailgun 库,用来抽取信息和签名
- django-simple-captcha:一个简单、高度可定制的 Django 应用,可以为任何 Django 表单添加验证码
- django-simple-spam-blocker:一个用于 Django 的简单的电子垃圾屏蔽工具
URL
- webargs:一个解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid
- short_url:短网址生成
国际化
- Babel:一个 Python 的国际化库
- Korean:一个韩语词态库
管理面板
- Ajenti:一个服务器值得拥有的管理面板
- django-suit:Django 管理界面的一个替代品 (仅对于非商业用途是免费的)
- django-xadmin:Django admin 的一个替代品,具有很多不错的功能
- flask-admin:一个用于 Flask 的简单可扩展的管理界面框架
- flower:一个对 Celery 集群进行实时监控和提供 Web 管理界面的工具
- Grappelli:Django 管理界面的一个漂亮的皮肤
- Wooey:一个 Django 应用,可以为 Python 脚本创建 Web 用户界面
静态站点生成
- Pelican:使用 Markdown 或 ReST 来处理内容,Jinja2 来制作主题
- Cactus:为设计师设计的静态站点生成器
- Hyde:基于 Jinja2 的静态站点生成器
- Nikola:一个静态网站和博客生成器
- Tinkerer:Tinkerer 是一个博客引擎/静态站点生成器,由 Sphinx 驱动
- Lektor:一个简单易用的静态 CMS 和博客引擎
- Tags:最简单的静态网站生成器
WSGI 服务器
- gunicorn:Pre-forked,部分是由 C 语言编写的
- uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务,由 C 语言编写
- bjoern:异步,速度非常快,由 C 语言编写
- fapws3:异步 (仅对于网络端),由 C 语言编写
- meinheld:异步,部分是由 C 语言编写的
- netius:异步,非常快速
- paste:多线程,稳定,久经考验
- rocket:多线程
- waitress:多线程,Pyramid 框架由它驱动
- Werkzeug:一个 WSGI 工具库,驱动着 Flask,而且可以很方便大嵌入到你的项目中去
ORM
- Django Models:Django 的一部分
- SQLAlchemy:Python SQL 工具以及对象关系映射工具
- Peewee:一个小巧,富有表达力的 ORM
- PonyORM:提供面向生成器的 SQL 接口的 ORM
- python-sql:编写 Python 风格的 SQL 查询
- 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
地理位置
- GeoDjango:世界级地理图形 web 框架
- GeoIP:MaxMind GeoIP Legacy 数据库的 Python API
- geojson:GeoJSON 的 Python 绑定及工具
- geopy:Python 地址编码工具箱
- pygeoip:纯 Python GeoIP API
- django-countries:一个 Django 应用程序,提供用于表格的国家选择功能,国旗图标静态文件以及模型中的国家字段
系统
进程
- envoy:比 Python subprocess 模块更人性化
- sarge:另一 种 subprocess 模块的封装
- sh:一个完备的 subprocess 替代库
- subprocess:调用 shell 命令的神器
并发/并行
- multiprocessing:(Python 标准库) 基于进程的“线程”接口
- threading:(Python 标准库)更高层的线程接口
- eventlet:支持 WSGI 的异步框架
- gevent:一个基于协程的 Python 网络库,使用 greenlet
- Tomorrow:用于产生异步代码的神奇的装饰器语法实现
- uvloop:在 libuv 之上超快速实现 asyncio 事件循环
数据库相关
Python 实现的数据库
- pickleDB:一个简单轻量级键值储存数据库
- PipelineDB:流式 SQL 数据库
- TinyDB:一个微型的面向文档型数据库
- ZODB:一个 Python 原生对象数据库。一个键值和对象图数据库
数据库驱动
- aiomysql:基于 asyncio 的异步 MySQL 数据库操作库
- mysql-python:Python 的 MySQL 数据库连接器
- ysqlclient:mysql-python 分支,支持 Python 3
- oursql:一个更好的 MySQL 连接器,支持原生预编译指令和 BLOBs
- PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python
- psycopg2:Python 中最流行的 PostgreSQL 适配器
- queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互
- txpostgres:基于 Twisted 的异步 PostgreSQL 驱动
- apsw:另一个 Python SQLite 封装
- dataset:在数据库中存储 Python 字典
- pymssql:一个简单的 Microsoft SQL Server 数据库接口
- 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 客户端
验证
OAuth
- OAuthLib:一个 OAuth 请求-签名逻辑通用、完整的实现
- python-oauth2:一个完全测试的抽象接口,用来创建 OAuth 客户端和服务端
- python-social-auth:一个设置简单的社会化验证方式
- rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 库
- sanction:一个超级简单的 OAuth2 客户端实现
密码
- cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者
- hashids:在 Python 中实现 hashids
- Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能
- Passlib:安全密码存储/哈希库
- PyCrypto:Python 密码学工具箱
- PyNacl:网络和密码学(NaCl) 库的 Python 绑定
其他
- jose:JavaScript 对象签名和加密草案的实现
- PyJWT:JSON Web 令牌草案01
- python-jws:JSON Web 签名草案02的实现
- python-jwt:一个用来生成和验证 JSON Web 令牌的模块
- Permissions:函数库,允许或拒绝用户访问数据或函数
人工智能
自然语言处理
- NLTK:一个先进的用以构建处理人类语言数据的 Python 程序
- jieba:中文分词工具
- langid.py:独立的语言识别系统
- SnowNLP:一个用来处理中文文本的库
- TextBlob:为进行普通自然语言处理任务提供一致的 API
- TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba
- thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包
- loso:中文分词函数库
计算机视觉
- OpenCV:开源计算机视觉库
- pyocr:Tesseract 和 Cuneiform 的包装库
- pytesseract:Google Tesseract OCR 的另一包装库
- SimpleCV:一个用来创建计算机视觉应用的开源框架
机器学习/深度学习
- Caffe: 一个 Caffe 的 Python 接口
- Caffe2:一个轻量级的、模块化的,可扩展的深度学习框架
- Crab:灵活、快速的推荐引擎
- gensim:人性化的话题建模库
- hebel:GPU 加速的深度学习库
- keras: 以 tensorflow/theano/CNTK 为后端的深度学习封装库,可以快速上手的神经网络
- MXNet:一个高效和灵活的深度学习框架
- NuPIC:智能计算 Numenta 平台
- pattern:Python 网络挖掘模块
- PyBrain:一个 Python 机器学习库
- pydeep:Python 深度学习库
- Pylearn2:一个基于 Theano 的机器学习库
- python-recsys:一个用来实现推荐系统的 Python 库
- Pytorch:一个具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架
- scikit-learn:基于 SciPy 构建的机器学习 Python 模块
- skflow:一个 TensorFlow 的简化接口(模仿 scikit-learn)
- TensorFlow:谷歌开源的最受欢迎的深度学习框架
- Theano:一个快速数值计算库
- vowpalporpoise:轻量级 Vowpal Wabbit 的 Python 封装
- Milk:机器学习工具箱,其重点是提供监督分类法与几种有效的分类分析:SVMs(基于libsvm),K-NN,随机森林经济和决策树
- PyMVPA(Multivariate Pattern Analysis in Python):为大数据集提供统计学习分析的 Python 工具包,它提供了一个灵活可扩展的框架
科学计算与数据分析
数据处理
- astropy:一个天文学相关的 Python 库
- bcbio-nextgen:这个工具箱为全自动高通量测序分析提供符合最佳实践的处理流程
- bccb:生物分析相关代码集合
- Biopython:Biopython 是一组可以免费使用的用来进行生物计算的工具
- blaze:NumPy 和 Pandas 的大数据接口
- cclib:一个用来解析和解释计算化学软件包输出结果的库
- NetworkX:一个为复杂网络设计的高性能软件
- Neupy:执行和测试各种不同的人工神经网络算法
- Numba:Python JIT (just in time) 编译器,针对科学用的 Python ,由 Cython 和 NumPy 的开发者开发
- NumPy:使用 Python 进行科学计算的基础包
- Open Babel:一个化学工具箱,用来描述多种化学数据
- Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)
- orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习
- Pandas:提供高性能,易用的数据结构和数据分析工具
- PyDy:PyDy 是 Python Dynamics 的缩写,用来为动力学运动建模工作流程提供帮助, 基于 NumPy, SciPy, IPython 和 matplotlib
- PyMC:马尔科夫链蒙特卡洛采样工具
- RDKit:化学信息学和机器学习软件
- SciPy:用于数学,科学和工程的开源软件构成的生态系统
- statsmodels:统计建模和计量经济学
- SymPy:一个用于符号数学的 Python 库
- zipline:一个 Python 算法交易库
- Bayesian-belief-networks:优雅的贝叶斯信念网络框架
- ScientificPython:一组经过挑选的 Python 程序模块,用于科学计算
- visvis:可视化计算模块库,可进行一维到四维数据的可视化
数据可视化
- 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 的高性能科学可视化工具
GUI 与游戏开发
GUI
- curses:内建的 ncurses 封装,用来创建终端图形用户界面
- enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面
- kivy:一个用来创建用户交互应用程序的库,可以运行在 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 技术进行界面的展示
- PyGtk:基于 Python 的 GUI 程序开发 GTK+ 库
- turtle:Python 的画图工具
游戏开发
- Cocos2d:cocos2d 是一个用来开发 2D 游戏
- Panda3D:由迪士尼开发的 3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用 C++ 编写, 针对 Python 进行了完全的封装
- Pygame:Pygame 是一组 Python 模块,用来编写游戏
- PyOgre:Ogre 3D 渲染引擎的 Python 绑定,可以用来开发游戏和仿真程序等任何 3D 应用
- PyOpenGL:OpenGL 的 Python 绑定及其相关 APIs
- PySDL2:SDL2 库的封装,基于 ctypes
- RenPy:一个视觉小说(visual novel)引擎
- PySFML:Python 绑定 SFMLRenPy,视觉小说引擎
音视频
音频
- 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 文件和回放功能
视频
- moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs
- scikit-video:SciPy 视频处理常用程序
- shorten.tv:视频摘要
测试相关
测试框架
- unittest:(Python 标准库) 单元测试框架
- nose:nose 扩展了 unittest 的功能
- contexts:一个 Python 3.3+ 的 BDD 框架
- hypothesis:Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库
- mamba:Python 的终极测试工具,拥护 BDD
- PyAutoGUI:PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块
- pyshould:Should 风格的断言,基于 PyHamcrest
- pytest:一个成熟的全功能 Python 测试工具
- green:干净多彩的测试工具
- pyvows:BDD 风格的测试工具,受 Vows.js 的启发
- Robot Framework:一个通用的自动化测试框架
Web 测试
- Selenium:Selenium WebDriver 的 Python 绑定
- locust:使用 Python 编写的,可扩展的用户加载测试工具
- sixpack:一个和语言无关的 A/B 测试框架
- splinter:开源的 Web 应用测试工具
Mock 测试
- mock:(Python 标准库) 一个用于伪造测试的库
- doublex:Python 的一个功能强大的 doubles 测试框架
- freezegun:通过伪造日期模块来生成不同的时间
- httmock:针对 Python 2.6+ 和 3.2+ 生成 伪造请求的库
- httpretty:Python 的 HTTP 请求 mock 工具
- responses:伪造 Python 中的 requests 库的一个通用库
- VCR.py:在你的测试中记录和重放 HTTP 交互
对象工厂
- factoryboy:一个 Python 用的测试固件 (test fixtures) 替代库
- mixer:另外一个测试固件 (test fixtures) 替代库,支持 Django, Flask, SQLAlchemy, Peewee 等
- modelmommy:为 Django 测试创建随机固件
代码覆盖率
- coverage:代码覆盖率测量
- Codecov:一个代码覆盖率测试工具,为开源项目提供免费代码覆盖率测试服务
伪数据
- faker:一个 Python 库,用来生成伪数据
- fake2db:伪数据库生成器
- radar:生成随机的日期/时间
- FuckIt.py:FuckIt.py 使用最先进的技术来保证你的 Python 代码无论对错都能继续运行
代码工具
代码分析
- coala:语言独立和易于扩展的代码分析应用程序
- code2flow:把你的 Python 和 JavaScript 代码转换为流程图
- pycallgraph:这个库可以把你的 Python 应用的流程(调用图)进行可视化
- pysonar2:Python 类型推断和检索工具
Lint 工具
- Flake8:模块化源码检查工具: pep8, pyflakes 以及 co
- Pylint:一个完全可定制的源码分析器
- YAPF: Google 的 Python 代码格式化工具
- pylama:Python 和 JavaScript 的代码审查工具
代码格式化
- autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范
- black:一个坚定的 Python 代码格式化工具
调试器
- ipdb:IPython 启用的 pdb
- pudb:全屏,基于控制台的 Python 调试器
- pyringe:可以在 Python 进程中附加和注入代码的调试器
- wdb:一个奇异的 web 调试器,通过 WebSockets 工作
- winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2
- django-debug-toolbar:为 Django 显示各种调试信息
- django-devserver:一个 Django 运行服务器的替代品
- flask-debugtoolbar:django-debug-toolbar 的 flask 版
性能分析
- lineprofiler:逐行性能分析
- Memory Profiler:监控 Python 代码的内存使用
- profiling:一个交互式 Python 性能分析工具
- pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息
- python-statsd:statsd 服务器的 Python 客户端
日志
- logging:(Python 标准库) 为 Python 提供日志功能
- logbook:Logging 库的替代品
- Eliot:为复杂的和分布式系统创建日志
- Raven:Sentry 的 Python 客户端
- Sentry:实时记录和收集日志的服务器
持续集成
- Travis CI:一个流行的工具,为你的开源和 私人 项目提供持续集成服务
- CircleCI:一个持续集成工具,可以非常快速的进行并行测试
- Vexor CI:一个为私人 app 提供持续集成的工具,支持按分钟付费
- Wercker:基于 Docker 平台,用来构建和部署微服务
代码质量
- Codacy:自动化代码审查,更加快速的发布高质量代码。对于开源项目是免费的
- QuantifiedCode:一个数据驱动、自动、持续的代码审查工具
DevOps
- Ansible:一个非常简单的 IT 自动化平台
- SaltStack:基础设施自动化和管理系统
- OpenStack:用于构建私有和公有云的开源软件
- Docker Compose:快速分离的开发环境,使用 Docker
- Fabric:一个简单的 Python 风格的工具,用来进行远程执行和部署
- cuisine:为 Fabric 提供一系列高级函数
- Fabtools:一个用来编写超赞的 Fabric 文件的工具
- gitapi:Git 的纯 Python API
- hgapi:Mercurial 的纯 Python API
- honcho:Foreman 的 Python 克隆版,用来管理基于 Procfile 的应用
- pexpect:Controlling interactive programs in a pseudo-terminal like 在一个伪终端中控制交互程序,就像 GNU expect 一样
- psutil:一个跨平台进程和系统工具模块
- supervisor:UNIX 的进程控制系统
任务调度
- APScheduler:轻巧但强大的进程内任务调度,使你可以调度函数
- django-schedule:一个 Django 排程应用
- doit:一个任务执行和构建工具
- gunnery:分布式系统使用的多用途任务执行工具 ,具有 web 交互界面
- Joblib:一组为 Python 提供轻量级作业流水线的工具
- Plan:如有神助地编写 crontab 文件
- schedule:人性化的 Python 任务调度库
- Spiff:使用纯 Python 实现的强大的工作流引擎
- TaskFlow:一个可以让你方便执行任务的 Python 库,一致并且可靠
- AirFlow:Airflow 是Airbnb公司开源的,是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度
高性能
- Cython:优化的 Python 静态编译器。使用类型混合使 Python 编译成 C 或 C++ 模块来获得性能的极大提升
- PeachPy:嵌入 Python 的 x86-64 汇编器。可以被用作 Python 内联的汇编器或者是独立的汇编器,用于 Windows, Linux, OS X, Native Client 或者 Go
- PyPy:使用 Python 实现的 Python。解释器使用黑魔法加快 Python 运行速度且不需要加入额外的类型信息
- Pyston:使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能
- Stackless Python:一个强化版的 Python
Windows 环境
- Python(x,y):面向科学应用的 Python 发行版,基于 Qt 和 Spyder
- pythonlibs:非官方的 Windows 平台 Python 扩展二进制包
- PythonNet:Python 与 .NET 公共语言运行库 (CLR)的集成
- PyWin32:针对 Windows 的 Python 扩展
- WinPython:Windows 7/8 系统下便携式开发环境
硬件相关
- ino:操作 Arduino 的命令行工具
- Pyro:Python 机器人编程库
- PyUserInput:跨平台的,控制鼠标和键盘的模块
- scapy:一个非常棒的操作数据包的库
- wifi:一个 Python 库和命令行工具用来在 Linux 平台上操作 WiFi
- Pingo:Pingo 为类似 Raspberry Pi,pcDuino, Intel Galileo 等设备提供统一的 API 用以编程
环境与包管理
环境管理
- p:非常简单的交互式 Python 版本管理工具
- pyenv:简单的 Python 版本管理工具
- Vex:可以在虚拟环境中执行命令
- virtualenv:创建独立 Python 环境的工具
- virtualenvwrapper:virtualenv 的一组扩展
- pew:一套管理多个虚拟环境的工具
- PyRun:一个单文件,无需安装的Python版本管理工具
包管理
- pip:Python 包和依赖关系管理工具
- pip-tools:保证 Python 包依赖关系更新的一组工具
- pipenv:Pyhton 官方推荐的新一代包管理工具
- conda:跨平台,Python 二进制包管理工具
- Curdling:管理 Python 包的命令行工具
- wheel:Python 分发的新标准,意在取代 eggs
- Pdm:新一代包管理工具
- easy_install:软件包管理系统
包仓库
- warehouse:下一代 PyPI
- bandersnatch:PyPA 提供的 PyPI 镜像工具
- devpi:PyPI 服务和打包/测试/分发工具
- localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)
- PyPI:新一代的 Python 包库管理工具
分发与构建
软件分发
- PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)
- dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布
- Nuitka:将脚本、模块、包编译成可执行文件或扩展模块
- py2app:将 Python 脚本变为独立软件包(Mac OS X)
- py2exe:将 Python 脚本变为独立软件包(Windows)
- pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身
- cx-Freeze:跨平台的,用于打包成可执行文件的库
构建
- buildout:一个构建系统,从多个组件来创建,组装和部署应用
- BitBake:针对嵌入式 Linux 的类似 make 的构建工具
- fabricate:对任何语言自动找到依赖关系的构建工具
- PlatformIO:多平台命令行构建工具
- PyBuilder:纯 Python 实现的持续化构建工具
- SCons:软件构建工具
交互式解释器
- IPython:功能丰富的工具,可以非常有效的使用交互式 Python
- bpython:界面丰富的 Python 解析器
- ptpython:高级交互式 Python 解析器,构建于 python-prompt-toolkit 之上
命令行相关
命令行工具
- asciimatics:跨平台、全屏终端库(即鼠标/键盘输入和彩色,定位文本输出),包含完整的复杂动画和特殊效果的高级 API
- cement:Python 的命令行程序框架
- click:一个通过组合的方式来创建精美命令行界面的包
- cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序
- clint:Python 命令行程序工具
- colorama:跨平台彩色终端文本
- docopt:Python 风格的命令行参数解析器
- Gooey:一条命令,将命令行程序变成一个 GUI 程序
- python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库
- python-fire:Google 出品的一个基于 Python 类的构建命令行界面的库
- Pythonpy:在命令行中直接执行任何 Python 指令
- Clime:可以转换任何模块为多的 CLI 命令程序,无任何配置
- docopt:Python 命令行参数分析器
- pycli:命令行应用程序,支持的标准命令行解析,测井,单元测试和功能测试
- rainbowstream:推特客户终端
- argparse:写命令行脚本必备,强大的命令行差数解析工具
- pyHook:基于 Python 的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件
- pstuil:跨平台地很方便获取和控制系统的进程,以及读取系统的 CPU 占用内存占用等信息
命令行高级工具
- aws-cli:Amazon Web Services 的通用命令行界面
- bashplotlib:在终端中进行基本绘图
- caniusepython3:判断是哪个项目妨碍你你移植到 Python3
- cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具
- doitlive:一个用来在终端中进行现场演示的工具
- pyftpdlib:一个速度极快和可扩展的 Python FTP 服务库
- howdoi:通过命令行获取即时的编程问题解答
- httpie:一个命令行 HTTP 客户端,cURL 的替代品,易用性更好
- PathPicker:从 bash 输出中选出文件
- percol:向 UNIX shell 传统管道概念中加入交互式选择功能
- SAWS:一个加强版的 AWS 命令行
- thefuck:修正你之前的命令行指令
- mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能
- pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能
- try:一个更简单的命令行工具,用来试用 python 库
第三方
API
- apache-libcloud:一个为各种云设计的 Python 库
- boto:Amazon Web Services 的 Python 接口
- django-wordpress:WordPress models and views for Django
- facebook-sdk:Facebook 平台的 Python SDK
- facepy:Facepy 让和 Facebook's Graph API 的交互变得更容易
- gmail:Gmail 的 Python 接口
- google-api-python-client:Python 用的 Google APIs 客户端库
- gspread:Google 电子表格的 Python API
- twython:Twitter API 的封装
外来函数接口
- cffi:用来调用 C 代码的外来函数接口
- ctypes:(Python 标准库) 用来调用 C 代码的外来函数接口
- PyCUDA:Nvidia CUDA API 的封装
- SWIG:简化的封装和接口生成器
其他
MapReduce
- dpark:Spark 的 Python 克隆版,一个类似 MapReduce 的框架
- dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序
- luigi:这个模块帮你构建批处理作业的复杂流水线
- mrjob:在 Hadoop 或 Amazon Web Services 上运行 MapReduce 任务
- PySpark:Spark 的 Python API
- streamparse:运行针对事实数据流的 Python 代码。集成了 Apache Storm
函数式编程
- CyToolz:Toolz 的 Cython 实现 : 高性能函数式工具
- fn.py:在 Python 中进行函数式编程,实现了一些享受函数式编程缺失的功能
- funcy:炫酷又实用的函数式工具
- Toolz:一组用于迭代器,函数和字典的函数式编程工具
兼容性
- Python-Future:这就是 Python 2 和 Python 3 之间丢失的那个兼容性层
- Python-Modernize:使 Python 代码更加现代化以便最终迁移到 Python 3
- Six:Python 2 和 3 的兼容性工具
编辑器插件
- Elpy:Emacs Python 开发环境
- SublimeJEDI:一个 Sublime Text 插件,用来使用超赞的自动补全库 Jedi
- Anaconda:Anaconda 把你的 Sublime Text 3 变成一个功能齐全的 Python IDE
- YouCompleteMe:引入基于 Jedi 的 Python 自动补全引擎
- Jedi-vim:绑定 Vim 和 Jedi 自动补全库对 Python 进行自动补全
- Python-mode:将 Vim 变成 Python IDE 的一款多合一插件
- PTVS:Visual Studio 的 Python 工具
自动聊天工具
- Errbot:最简单和最流行的聊天机器人用来实现自动聊天工具
金融数据
- Tushare:一个可以提供免费股票、基金、期货、港股等金融数据的 Python 开源数据
- Ta-Lib:金融数据技术分析库,可以依据原始金融数据计算各种技术指标,计算性能比较优异
- AkSHare:一个非常棒的免费金融数据平台
算法和设计模式
- algorithms:一个 Python 算法模块
- python-patterns:Python 设计模式的集合
- sortedcontainers:快速,纯 Python 实现的 SortedList,SortedDict 和 SortedSet 类型
杂七杂八
- blinker:一个快速的 Python 进程内信号/事件分发系统
- itsdangerous:一系列辅助工具用来将可信的数据传入不可信的环境
- pluginbase:一个简单但是非常灵活的 Python 插件系统
- Pychievements:一个用来创建和追踪成就的 Python 框架
- Tryton:一个通用商务框架
好了,这就是今天的分享。不得不说,总结 Python 的类库实在是太累了,实在是太多了,还请 点赞 + 在看 支持一下~
另外还整理Python学习路线思维导图两张,也可以在下方链接获取
获取高清图片
https://shimo.im/docs/2wAlXDyaXGTPdQAP/
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.