Python精選庫大全,建議收藏留用!
Python為啥這么火,這么多人學(xué),就是因為簡單好學(xué),功能強(qiáng)大,整個社區(qū)非常活躍,資料很多。而且這語言涉及了方方面面,比如自動化測試,運維,爬蟲,數(shù)據(jù)分析,機(jī)器學(xué)習(xí),金融領(lǐng)域,后端開發(fā),云計算,游戲開發(fā)都有涉及。

萬丈高樓平地起,Python這座大廈能夠如此強(qiáng)大,就是擁有強(qiáng)大的成千上萬的庫的支持,無數(shù)牛逼的輪子在支持這座大廈,下面我們挑選Python每個領(lǐng)域的的精品庫,展現(xiàn)給大家,看完之后,你一定會大叫,臥槽,這么多庫我都沒有見過~~
1:Python大廈的底層基建
環(huán)境管理
管理 Python 版本和環(huán)境的工具
p:非常簡單的交互式 python 版本管理工具。
pyenv:簡單的 Python 版本管理工具。
Vex:可以在虛擬環(huán)境中執(zhí)行命令。
virtualenv:創(chuàng)建獨立 Python 環(huán)境的工具。
buildout:在隔離環(huán)境初始化后使用聲明性配置管理。
包管理
管理包和依賴的工具。
pip:Python 包和依賴關(guān)系管理工具。
pip-tools:保證 Python 包依賴關(guān)系更新的一組工具。
pipenv:Python 官方推薦的新一代包管理工具。
poetry: 可完全取代 setup.py 的包管理工具。
conda:跨平臺,Python 二進(jìn)制包管理工具。
Curdling:管理 Python 包的命令行工具。
wheel:Python 分發(fā)的新標(biāo)準(zhǔn),意在取代 eggs。
分發(fā)
打包為可執(zhí)行文件以便分發(fā)。
PyInstaller:將 Python 程序轉(zhuǎn)換成獨立的執(zhí)行文件(跨平臺)。
cx_Freeze:將python程序轉(zhuǎn)換為帶有一個動態(tài)鏈接庫的可執(zhí)行文件。
dh-virtualenv:構(gòu)建并將 virtualenv 虛擬環(huán)境作為一個 Debian 包來發(fā)布。
Nuitka:將腳本、模塊、包編譯成可執(zhí)行文件或擴(kuò)展模塊。
py2app:將 Python 腳本變?yōu)楠毩④浖∕ac OS X)。
py2exe:將 Python 腳本變?yōu)楠毩④浖╓indows)。
pynsist:一個用來創(chuàng)建 Windows 安裝程序的工具,可以在安裝程序中打包 Python 本身。
配置
用來保存和解析配置的庫。
config:logging 模塊作者寫的分級配置模塊。
ConfigObj:INI 文件解析器,帶驗證功能。
ConfigParser:(Python 標(biāo)準(zhǔn)庫) INI 文件解析器。
profig:通過多種格式進(jìn)行配置,具有數(shù)值轉(zhuǎn)換功能。
python-decouple:將設(shè)置和代碼完全隔離。
2:Python大廈的管理配置
文件
aiofiles:基于 asyncio,提供文件異步操作
imghdr:(Python 標(biāo)準(zhǔn)庫)檢測圖片類型
mimetypes:(Python 標(biāo)準(zhǔn)庫)將文件名映射為 MIME 類型
path.py:對 os.path 進(jìn)行封裝的模塊
pathlib:(Python3.4+ 標(biāo)準(zhǔn)庫)跨平臺的、面向?qū)ο蟮穆窂讲僮鲙?/p>
python-magic:文件類型檢測的第三方庫 libmagic 的 Python 接口
Unipath:用面向?qū)ο蟮姆绞讲僮魑募湍夸?/p>
watchdog:管理文件系統(tǒng)事件的 API 和 shell 工具
日期和時間
操作日期和時間的類庫。
arrow:更好的 Python 日期時間操作類庫。
Chronyk:Python 3 的類庫,用于解析手寫格式的時間和日期。
dateutil:Python datetime 模塊的擴(kuò)展。
delorean:解決 Python 中有關(guān)日期處理的棘手問題的庫。
maya:人性化的時間處理庫。
moment:一個用來處理時間和日期的 Python 庫。靈感來自于 Moment.js。
pendulum:一個比 arrow 更具有明確的,可預(yù)測的行為的時間操作庫。
PyTime:一個簡單易用的 Python 模塊,用于通過字符串來操作日期/時間。
pytz:現(xiàn)代以及歷史版本的世界時區(qū)定義。將時區(qū)數(shù)據(jù)庫引入 Python。
when.py:提供用戶友好的函數(shù)來幫助用戶進(jìn)行常用的日期和時間操作。
文本處理
用于解析和操作文本的庫。
通用
chardet:字符編碼檢測器,兼容 Python2 和 Python3。
difflib:(Python 標(biāo)準(zhǔn)庫)幫助我們進(jìn)行差異化比較。
ftfy:讓 Unicode 文本更完整更連貫。
fuzzywuzzy:模糊字符串匹配。
Levenshtein:快速計算編輯距離以及字符串的相似度。
pangu.py:在中日韓語字符和數(shù)字字母之間添加空格。
pypinyin:漢字拼音轉(zhuǎn)換工具 Python 版。
shortuuid:一個生成器庫,用以生成簡潔的,明白的,URL 安全的 UUID。
simplejson:Python 的 JSON 編碼、解碼器。
unidecode:Unicode 文本的 ASCII 轉(zhuǎn)換形式 。
uniout:打印可讀的字符,而不是轉(zhuǎn)義的字符串。
xpinyin:一個用于把漢字轉(zhuǎn)換為拼音的庫。
yfiglet-figlet:pyfiglet -figlet 的 Python 實現(xiàn)。
flashtext: 一個高效的文本查找替換庫。
Slug 化
awesome-slugify:一個 Python slug 化庫,可以保持 Unicode。
python-slugify:Python slug 化庫,可以把 unicode 轉(zhuǎn)化為 ASCII。
unicode-slugify:一個 slug 工具,可以生成 unicode slugs ,需要依賴 Django 。
解析器
phonenumbers:解析,格式化,儲存,驗證電話號碼。
PLY:lex 和 yacc 解析工具的 Python 實現(xiàn)。
Pygments:通用語法高亮工具。
pyparsing:生成通用解析器的框架。
python-nameparser:把一個人名分解為幾個獨立的部分。
python-user-agents:瀏覽器 user agent 解析器。
sqlparse:一個無驗證的 SQL 解析器。
辦公文本格式處理
通用
tablib:一個用來處理中表格數(shù)據(jù)的模塊。
Office
Marmir:把輸入的 Python 數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為電子表單。
openpyxl:一個用來讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 文件的庫。
pyexcel:一個提供統(tǒng)一 API,用來讀寫,操作 Excel 文件的庫。
python-docx:讀取,查詢以及修改 Microsoft Word 2007/2008 docx 文件。
relatorio:模板化 OpenDocument 文件。
unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之間進(jìn)行轉(zhuǎn)換。
XlsxWriter:一個用于創(chuàng)建 Excel .xlsx 文件的 Python 模塊。
xlwings:一個使得在 Excel 中方便調(diào)用 Python 的庫(反之亦然),基于 BSD 協(xié)議。
xlwt:讀寫 Excel 文件的數(shù)據(jù)和格式信息。
PDF
PDFMiner:一個用于從 PDF 文檔中抽取信息的工具。
PyPDF2:一個可以分割,合并和轉(zhuǎn)換 PDF 頁面的庫。
ReportLab:快速創(chuàng)建富文本 PDF 文檔。
Markdown
Mistune:快速并且功能齊全的純 Python 實現(xiàn)的 Markdown 解析器。
Python-Markdown:John Gruber’s Markdown 的 Python 版實現(xiàn)。
Python-Markdown2:純 Python 實現(xiàn)的 Markdown 解析器,比 Python-Markdown 更快,更準(zhǔn)確
YAML
PyYAML:Python 版本的 YAML 解析器。
CSV
csvkit:用于轉(zhuǎn)換和操作 CSV 的工具。
配置
用來保存和解析配置的庫。
config:logging 模塊作者寫的分級配置模塊。
ConfigObj:INI 文件解析器,帶驗證功能。
ConfigParser:(Python 標(biāo)準(zhǔn)庫) INI 文件解析器。
profig:通過多種格式進(jìn)行配置,具有數(shù)值轉(zhuǎn)換功能。
python-decouple:將設(shè)置和代碼完全隔離。
命令行工具
用于創(chuàng)建命令行程序的庫。
命令行程序開發(fā)
asciimatics:跨平臺,全屏終端包(即鼠標(biāo)/鍵盤輸入和彩色,定位文本輸出),完整的復(fù)雜動畫和特殊效果的高級 API。
cement:Python 的命令行程序框架。
click:一個通過組合的方式來創(chuàng)建精美命令行界面的包。
cliff:一個用于創(chuàng)建命令行程序的框架,可以創(chuàng)建具有多層命令的命令行程序。
clint:Python 命令行程序工具。
colorama:跨平臺彩色終端文本。
docopt:Python 風(fēng)格的命令行參數(shù)解析器。
Gooey:一條命令,將命令行程序變成一個 GUI 程序。
python-prompt-toolkit:一個用于構(gòu)建強(qiáng)大的交互式命令行程序的庫。
python-fire:Google 出品的一個基于 Python 類的構(gòu)建命令行界面的庫。
Pythonpy:在命令行中直接執(zhí)行任何 Python 指令。
生產(chǎn)力工具
aws-cli:Amazon Web Services 的通用命令行界面。
bashplotlib:在終端中進(jìn)行基本繪圖。
caniusepython3:判斷是哪個項目妨礙你你移植到 Python3。
cookiecutter:從 cookiecutters(項目模板)創(chuàng)建項目的一個命令行工具。
doitlive:一個用來在終端中進(jìn)行現(xiàn)場演示的工具。
pyftpdlib:一個速度極快和可擴(kuò)展的 Python FTP 服務(wù)庫。
howdoi:通過命令行獲取即時的編程問題解答。
httpie:一個命令行 HTTP 客戶端,cURL 的替代品,易用性更好。
PathPicker:從 bash 輸出中選出文件。
percol:向 UNIX shell 傳統(tǒng)管道概念中加入交互式選擇功能。
SAWS:一個加強(qiáng)版的 AWS 命令行。
thefuck:修正你之前的命令行指令。
mycli:一個 MySQL 命令行客戶端,具有自動補全和語法高亮功能。
pgcli:Postgres 命令行工具,具有自動補全和語法高亮功能。
try:一個從來沒有更簡單的命令行工具,用來試用 python 庫。
3:Python大廈的倉庫
數(shù)據(jù)庫
Python 實現(xiàn)的數(shù)據(jù)庫。
pickleDB:一個簡單,輕量級鍵值儲存數(shù)據(jù)庫。
PipelineDB:流式 SQL 數(shù)據(jù)庫。
TinyDB:一個微型的,面向文檔型數(shù)據(jù)庫。
ZODB:一個 Python 原生對象數(shù)據(jù)庫。一個鍵值和對象圖數(shù)據(jù)庫。
數(shù)據(jù)庫驅(qū)動
用來連接和操作數(shù)據(jù)庫的庫。
MySQL:awesome-mysql 系列
aiomysql:基于 asyncio 的異步 MySQL 數(shù)據(jù)庫操作庫。
mysql-python:Python 的 MySQL 數(shù)據(jù)庫連接器。
ysqlclient:mysql-python 分支,支持 Python 3。
oursql:一個更好的 MySQL 連接器,支持原生預(yù)編譯指令和 BLOBs。
PyMySQL:純 Python MySQL 驅(qū)動,兼容 mysql-python。
PostgreSQL
psycopg2:Python 中最流行的 PostgreSQL 適配器。
queries:psycopg2 庫的封裝,用來和 PostgreSQL 進(jìn)行交互。
txpostgres:基于 Twisted 的異步 PostgreSQL 驅(qū)動。
其他關(guān)系型數(shù)據(jù)庫
apsw:另一個 Python SQLite 封裝。
dataset:在數(shù)據(jù)庫中存儲 Python 字典
pymssql:一個簡單的 Microsoft SQL Server 數(shù)據(jù)庫接口。
NoSQL 數(shù)據(jù)庫
asyncio-redis:基于 asyncio 的 redis 客戶端 (PEP 3156)。
cassandra-python-driver:Cassandra 的 Python 驅(qū)動。
HappyBase:一個為 Apache HBase 設(shè)計的,對開發(fā)者友好的庫。
PLYvel:一個快速且功能豐富的 LevelDB 的 Python 接口。
py2neo:Neo4j restful 接口的 Python 封裝客戶端。
pycassa:Cassandra 的 Python Thrift 驅(qū)動。
PyMongo:MongoDB 的官方 Python 客戶端。
redis-py:Redis 的 Python 客戶端。
telephus:基于 Twisted 的 Cassandra 客戶端。
txRedis:基于 Twisted 的 Redis 客戶端。
4:Python大廈的網(wǎng)絡(luò)通訊
網(wǎng)絡(luò)
用于網(wǎng)絡(luò)編程的庫。
asyncio:(Python 標(biāo)準(zhǔn)庫) 異步 I/O, 事件循環(huán), 協(xié)程以及任務(wù)。
Twisted:一個事件驅(qū)動的網(wǎng)絡(luò)引擎。
pulsar:事件驅(qū)動的并發(fā)框架。
diesel:基于 Greenlet 的事件 I/O 框架。
pyzmq:一個 ZeroMQ 消息庫的 Python 封裝。
Toapi:一個輕巧,簡單,快速的 Flask 庫,致力于為所有網(wǎng)站提供 API 服務(wù)。
txZMQ:基于 Twisted 的 ZeroMQ 消息庫的 Python 封裝。
HTTP
使用 HTTP 的庫。
aiohttp:基于 asyncio 的異步 HTTP 網(wǎng)絡(luò)庫。
requests:人性化的 HTTP 請求庫。
grequests:requests 庫 + gevent ,用于異步 HTTP 請求.
httplib2:全面的 HTTP 客戶端庫。
treq:類似 requests 的 Python API 構(gòu)建于 Twisted HTTP 客戶端之上。
urllib3:一個具有線程安全連接池,支持文件 post,清晰友好的 HTTP 庫。
WebSocket
幫助使用 WebSocket 的庫。
AutobahnPython:給 Python 、使用的 WebSocket & WAMP 基于 Twisted 和 asyncio。
Crossbar:開源統(tǒng)一應(yīng)用路由(Websocket & WAMP for Python on Autobahn)。
django-socketio:給 Django 用的 WebSockets。
WebSocket-for-Python:為 Python2/3 以及 PyPy 編寫的 WebSocket 客戶端和服務(wù)器庫。
WSGI 服務(wù)器
兼容 WSGI 的 web 服務(wù)器
gunicorn:Pre-forked, 部分是由 C 語言編寫的。
uwsgi:uwsgi 項目的目的是開發(fā)一組全棧工具,用來建立托管服務(wù), 由 C 語言編寫。
bjoern:異步,非??焖伲?C 語言編寫。
fapws3:異步 (僅對于網(wǎng)絡(luò)端),由 C 語言編寫。
meinheld:異步,部分是由 C 語言編寫的。
netius:異步,非常快速。
paste:多線程,穩(wěn)定,久經(jīng)考驗。
rocket:多線程。
waitress:多線程, 是它驅(qū)動著 Pyramid 框架。
Werkzeug:一個 WSGI 工具庫,驅(qū)動著 Flask ,而且可以很方便大嵌入到你的項目中去。
Web 框架
全棧 Web 框架。
Django:Python 界最流行的 web 框架。
Flask:一個 Python 微型框架。
pyramid:一個小巧,快速,接地氣的開源 Python web 框架。
Bottle:一個快速小巧,輕量級的 WSGI 微型 web 框架。
CherryPy:一個極簡的 Python web 框架,服從 HTTP/1.1 協(xié)議且具有 WSGI 線程池。
TurboGears:一個可以擴(kuò)展為全棧解決方案的微型框架。
Tornado:一個 web 框架和異步網(wǎng)絡(luò)庫。
sanic:基于 Python3.5+ 的異步網(wǎng)絡(luò)框架。
starlette: 一款輕量級,高性能的 ASGI 框架
電子商務(wù)
用于電子商務(wù)以及支付的框架和庫。
django-oscar:一個用于 Django 的開源的電子商務(wù)框架。
django-shop:一個基于 Django 的店鋪系統(tǒng)。
Cartridge:一個基于 Mezzanine 構(gòu)建的購物車應(yīng)用。
shoop:一個基于 Django 的開源電子商務(wù)平臺。
alipay:非官方的 Python 支付寶 API。
merchant:一個可以接收來自多種支付平臺支付的 Django 應(yīng)用。
money:一個貨幣類庫。帶有可選的 CLDR 后端本地化格式,提供可擴(kuò)展的貨幣兌換解決方案。
python-currencies:顯示貨幣格式以及它的數(shù)值。
RESTful API
用來開發(fā) RESTful APIs 的庫
Django
django-rest-framework:一個強(qiáng)大靈活的工具,用來構(gòu)建 web API。
django-tastypie:為 Django 應(yīng)用開發(fā) API。
django-formapi:為 Django 的表單驗證,創(chuàng)建 JSON APIs 。
Flask
Flask-api:為 Flask 開發(fā)的,可瀏覽 Web APIs 。
Flask-restful:為 Flask 快速創(chuàng)建 REST APIs 。
Flask-restless:為 SQLAlchemy 定義的數(shù)據(jù)庫模型創(chuàng)建 RESTful APIs 。
Flask-api-utils:為 Flask 處理 API 表示和驗證。
eve:REST API 框架,由 Flask, MongoDB 等驅(qū)動。
Pyramid
cornice:一個 Pyramid 的 REST 框架 。
與框架無關(guān)的
falcon:一個用來建立云 API 和 web app 后端的高性能框架。
sandman:為現(xiàn)存的數(shù)據(jù)庫驅(qū)動系統(tǒng)自動創(chuàng)建 REST APIs 。
restless:框架無關(guān)的 REST 框架 ,基于從 Tastypie 學(xué)到的知識。
ripozo:快速創(chuàng)建 REST/HATEOAS/Hypermedia APIs。
模板引擎
模板生成和詞法解析的庫和工具。
Jinja2:一個現(xiàn)代的,對設(shè)計師友好的模板引擎。
Chameleon:一個 HTML/XML 模板引擎。模仿了 ZPT(Zope Page Templates), 進(jìn)行了速度上的優(yōu)化。
Genshi:Python 模板工具,用以生成 web 感知的結(jié)果。
Mako:Python 平臺的超高速輕量級模板。
隊列
處理事件以及任務(wù)隊列的庫。
celery:一個異步任務(wù)隊列/作業(yè)隊列,基于分布式消息傳遞。
huey:小型多線程任務(wù)隊列。
mrq:Mr. Queue -一個 Python 的分布式 worker 任務(wù)隊列, 使用 Redis 和 gevent。
rq:簡單的 Python 作業(yè)隊列。
simpleq:一個簡單的,可無限擴(kuò)張的,基于亞馬遜 SQS 的隊列。
搜索
對數(shù)據(jù)進(jìn)行索引和執(zhí)行搜索查詢的庫和軟件。
django-haystack:Django 模塊化搜索。
elasticsearch-py:Elasticsearch 的官方底層 Python 客戶端。
elasticsearch-dsl-py:Elasticsearch 的官方高級 Python 客戶端。
solrpy:solr 的 Python 客戶端。
Whoosh:一個快速的純 Python 搜索引擎庫。
電子郵件
用來發(fā)送和解析電子郵件的庫。
django-celery-ses:帶有 AWS SES 和 Celery 的 Django email 后端。
envelopes:供人類使用的電子郵件庫。
flanker:一個 email 地址和 Mime 解析庫。
imbox:Python IMAP 庫。
inbox.py:Python SMTP 服務(wù)器。
inbox:一個開源電子郵件工具箱。
lamson:Python 風(fēng)格的 SMTP 應(yīng)用服務(wù)器。
mailjet:Mailjet API 實現(xiàn),用來提供批量發(fā)送郵件,統(tǒng)計等功能。
marrow.mailer:高性能可擴(kuò)展郵件分發(fā)框架。
modoboa:一個郵件托管和管理平臺,具有現(xiàn)代的、簡約的 Web UI。
pyzmail:創(chuàng)建,發(fā)送和解析電子郵件。
Talon:Mailgun 庫,用來抽取信息和簽名。
yagmail:yagmail是一個GMAIL / SMTP客戶端,旨在使其盡可能簡單地發(fā)送電子郵件。
URL 處理
解析 URLs 的庫
furl:一個讓處理 URL 更簡單小型 Python 庫。
purl:一個簡單的,不可變的 URL 類,具有簡潔的 API 來進(jìn)行詢問和處理。
pyshorteners:一個純 Python URL 縮短庫。
shorturl:生成短小 URL 和類似?http://bit.ly?短鏈的 Python 實現(xiàn)。
webargs:一個解析 HTTP 請求參數(shù)的庫,內(nèi)置對流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。
5:Python大廈的動力系統(tǒng)
進(jìn)程
操作系統(tǒng)進(jìn)程啟動及通信庫。
envoy:比 Python subprocess 模塊更人性化。
sarge:另一 種 subprocess 模塊的封裝。
sh:一個完備的 subprocess 替代庫。
并發(fā)和并行
用以進(jìn)行并發(fā)和并行操作的庫。
multiprocessing:(Python 標(biāo)準(zhǔn)庫) 基于進(jìn)程的“線程”接口。
threading:(Python 標(biāo)準(zhǔn)庫)更高層的線程接口。
eventlet:支持 WSGI 的異步框架。
gevent:一個基于協(xié)程的 Python 網(wǎng)絡(luò)庫,使用 greenlet。
Tomorrow:用于產(chǎn)生異步代碼的神奇的裝飾器語法實現(xiàn)。
uvloop:在 libuv 之上超快速實現(xiàn) asyncio 事件循環(huán)。
不看不知道,一看真的是大吃一驚,Python的庫真的太多太多了。以上100多庫只是Python帝國大廈的一部分,負(fù)責(zé)構(gòu)建大廈的內(nèi)部基石。
想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!