Python精選庫大全,建議收藏留用!

Python爲啥這麼火,這麼多人學,就是因爲簡單好學,功能強大,整個社區非常活躍,資料很多。而且這語言涉及了方方面面,比如自動化測試,運維,爬蟲,數據分析,機器學習,金融領域,後端開發,雲計算,遊戲開發都有涉及。

萬丈高樓平地起,Python這座大廈能夠如此強大,就是擁有強大的成千上萬的庫的支持,無數牛逼的輪子在支持這座大廈,今天我們來一起梳理一下,俯瞰整個Python寶庫。

小編大概列了一下整個Python庫的應用的方法面面,粗略算算就有20幾個方向。左右兩邊分兩個方向,左邊負責進攻(主外),每一項單獨拉出來都是精品,都是Python應用裏面拳頭產品;右邊負責守(主內),都是涉及底層的配置,算是整個大廈的地基。

下面我們挑選每個領域的的精品庫,展現給大家,看完之後,你一定會大叫,臥槽,這麼多庫我都沒有見過~~

1

Python大廈的底層基建

環境管理

管理 Python 版本和環境的工具

  • p:非常簡單的交互式 python 版本管理工具。

  • pyenv:簡單的 Python 版本管理工具。

  • Vex:可以在虛擬環境中執行命令。

  • virtualenv:創建獨立 Python 環境的工具。

  • buildout:在隔離環境初始化後使用聲明性配置管理。

包管理

管理包和依賴的工具。

  • pip:Python 包和依賴關係管理工具。

  • pip-tools:保證 Python 包依賴關係更新的一組工具。

  • pipenv:Python 官方推薦的新一代包管理工具。

  • poetry: 可完全取代 setup.py 的包管理工具。

  • conda:跨平臺,Python 二進制包管理工具。

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

  • wheel:Python 分發的新標準,意在取代 eggs。

分發

打包爲可執行文件以便分發。

  • PyInstaller:將 Python 程序轉換成獨立的執行文件(跨平臺)。

  • cx_Freeze:將python程序轉換爲帶有一個動態鏈接庫的可執行文件。

  • dh-virtualenv:構建並將 virtualenv 虛擬環境作爲一個 Debian 包來發布。

  • Nuitka:將腳本、模塊、包編譯成可執行文件或擴展模塊。

  • py2app:將 Python 腳本變爲獨立軟件包(Mac OS X)。

  • py2exe:將 Python 腳本變爲獨立軟件包(Windows)。

  • pynsist:一個用來創建 Windows 安裝程序的工具,可以在安裝程序中打包 Python 本身。

配置

用來保存和解析配置的庫。

  • config:logging 模塊作者寫的分級配置模塊。

  • ConfigObj:INI 文件解析器,帶驗證功能。

  • ConfigParser:(Python 標準庫) INI 文件解析器。

  • profig:通過多種格式進行配置,具有數值轉換功能。

  • python-decouple:將設置和代碼完全隔離。

2

Python大廈的管理配置

文件

  • aiofiles:基於 asyncio,提供文件異步操作

  • 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 中有關日期處理的棘手問題的庫。

  • maya:人性化的時間處理庫。

  • moment:一個用來處理時間和日期的 Python 庫。靈感來自於 Moment.js。

  • pendulum:一個比 arrow 更具有明確的,可預測的行爲的時間操作庫。

  • PyTime:一個簡單易用的 Python 模塊,用於通過字符串來操作日期/時間。

  • pytz:現代以及歷史版本的世界時區定義。將時區數據庫引入 Python。

  • when.py:提供用戶友好的函數來幫助用戶進行常用的日期和時間操作。

文本處理

用於解析和操作文本的庫。

  • 通用

    • chardet:字符編碼檢測器,兼容 Python2 和 Python3。

    • 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: 一個高效的文本查找替換庫。

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

    • pyexcel:一個提供統一 API,用來讀寫,操作 Excel 文件的庫。

    • python-docx:讀取,查詢以及修改 Microsoft Word 2007/2008 docx 文件。

    • relatorio:模板化 OpenDocument 文件。

    • unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之間進行轉換。

    • XlsxWriter:一個用於創建 Excel .xlsx 文件的 Python 模塊。

    • xlwings:一個使得在 Excel 中方便調用 Python 的庫(反之亦然),基於 BSD 協議。

    • xlwt:讀寫 Excel 文件的數據和格式信息。

  • 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 的工具。

配置

用來保存和解析配置的庫。

  • 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:一個用於構建強大的交互式命令行程序的庫。

    • python-fire:Google 出品的一個基於 Python 類的構建命令行界面的庫。

    • Pythonpy:在命令行中直接執行任何 Python 指令。

  • 生產力工具

    • 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 庫。

3

Python大廈的倉庫

數據庫

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 客戶端。

4

Python大廈的網絡通訊

網絡

用於網絡編程的庫。

  • asyncio:(Python 標準庫) 異步 I/O, 事件循環, 協程以及任務。

  • Twisted:一個事件驅動的網絡引擎。

  • pulsar:事件驅動的併發框架。

  • diesel:基於 Greenlet 的事件 I/O 框架。

  • pyzmq:一個 ZeroMQ 消息庫的 Python 封裝。

  • Toapi:一個輕巧,簡單,快速的 Flask 庫,致力於爲所有網站提供 API 服務。

  • txZMQ:基於 Twisted 的 ZeroMQ 消息庫的 Python 封裝。

HTTP

使用 HTTP 的庫。

  • aiohttp:基於 asyncio 的異步 HTTP 網絡庫。

  • requests:人性化的 HTTP 請求庫。

  • grequests:requests 庫 + gevent ,用於異步 HTTP 請求.

  • httplib2:全面的 HTTP 客戶端庫。

  • treq:類似 requests 的 Python API 構建於 Twisted HTTP 客戶端之上。

  • urllib3:一個具有線程安全連接池,支持文件 post,清晰友好的 HTTP 庫。

WebSocket

幫助使用 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 客戶端和服務器庫。

WSGI 服務器

兼容 WSGI 的 web 服務器

  • gunicorn:Pre-forked, 部分是由 C 語言編寫的。

  • uwsgi:uwsgi 項目的目的是開發一組全棧工具,用來建立託管服務, 由 C 語言編寫。

  • bjoern:異步,非常快速,由 C 語言編寫。

  • fapws3:異步 (僅對於網絡端),由 C 語言編寫。

  • meinheld:異步,部分是由 C 語言編寫的。

  • netius:異步,非常快速。

  • paste:多線程,穩定,久經考驗。

  • rocket:多線程。

  • waitress:多線程, 是它驅動着 Pyramid 框架。

  • Werkzeug:一個 WSGI 工具庫,驅動着 Flask ,而且可以很方便大嵌入到你的項目中去。

Web 框架

全棧 Web 框架。

  • Django:Python 界最流行的 web 框架。

  • Flask:一個 Python 微型框架。

  • pyramid:一個小巧,快速,接地氣的開源 Python web 框架。

  • Bottle:一個快速小巧,輕量級的 WSGI 微型 web 框架。

  • CherryPy:一個極簡的 Python web 框架,服從 HTTP/1.1 協議且具有 WSGI 線程池。

  • TurboGears:一個可以擴展爲全棧解決方案的微型框架。

  • Tornado:一個 web 框架和異步網絡庫。

  • sanic:基於 Python3.5+ 的異步網絡框架。

  • starlette: 一款輕量級,高性能的 ASGI 框架 

電子商務

用於電子商務以及支付的框架和庫。

  • django-oscar:一個用於 Django 的開源的電子商務框架。

  • django-shop:一個基於 Django 的店鋪系統。

  • Cartridge:一個基於 Mezzanine 構建的購物車應用。

  • shoop:一個基於 Django 的開源電子商務平臺。

  • alipay:非官方的 Python 支付寶 API。

  • merchant:一個可以接收來自多種支付平臺支付的 Django 應用。

  • money:一個貨幣類庫。帶有可選的 CLDR 後端本地化格式,提供可擴展的貨幣兌換解決方案。

  • 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。

模板引擎

模板生成和詞法解析的庫和工具。

  • Jinja2:一個現代的,對設計師友好的模板引擎。

  • Chameleon:一個 HTML/XML 模板引擎。模仿了 ZPT(Zope Page Templates), 進行了速度上的優化。

  • Genshi:Python 模板工具,用以生成 web 感知的結果。

  • Mako:Python 平臺的超高速輕量級模板。

隊列

處理事件以及任務隊列的庫。

  • 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-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 庫,用來抽取信息和簽名。

  • yagmail:yagmail是一個GMAIL / SMTP客戶端,旨在使其儘可能簡單地發送電子郵件。

URL 處理

解析 URLs 的庫

  • furl:一個讓處理 URL 更簡單小型 Python 庫。

  • purl:一個簡單的,不可變的 URL 類,具有簡潔的 API 來進行詢問和處理。

  • pyshorteners:一個純 Python URL 縮短庫。

  • shorturl:生成短小 URL 和類似 bit.ly 短鏈的 Python 實現。

  • webargs:一個解析 HTTP 請求參數的庫,內置對流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。

5

Python大廈的動力系統

進程

操作系統進程啓動及通信庫。

  • envoy:比 Python subprocess 模塊更人性化。

  • sarge:另一 種 subprocess 模塊的封裝。

  • sh:一個完備的 subprocess 替代庫。

併發和並行

用以進行併發和並行操作的庫。

  • multiprocessing:(Python 標準庫) 基於進程的“線程”接口。

  • threading:(Python 標準庫)更高層的線程接口。

  • eventlet:支持 WSGI 的異步框架。

  • gevent:一個基於協程的 Python 網絡庫,使用 greenlet。

  • Tomorrow:用於產生異步代碼的神奇的裝飾器語法實現。

  • uvloop:在 libuv 之上超快速實現 asyncio 事件循環。

不看不知道,一看真的是大喫一驚,Python的庫真的太多太多了。以上100多庫只是Python帝國大廈的一部分,負責構建大廈的內部基石。後面小編會繼續介紹Python應用的庫大全,敬請期待。

悄悄的說一下,我常用的只有20個不到,你用了幾個?歡迎留言區吱一聲。

本文來自 程序員GitHub,需要轉載聯繫小編

或許你還想看

我總結的80頁《菜鳥學Python精選乾貨.pdf》,都是乾貨

馬老師曾說,我對錢沒有興趣!於是我用Python分析了馬老師的語錄,發現...

笑噴了,我用Python幫韋小寶選最佳老婆組合

菜鳥也瘋狂!8分鐘用Python做一個酷炫的家庭隨手記

首播過億,火爆全網,我分析了《乘風破浪的姐姐》,發現了這些祕密

點的“在看”,否則就看不到我了555
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章