整理了上千個Python類庫,簡直太酷啦!

數據分析那些事
38 min readSep 29, 2022

文章來源於:蘿蔔大雜燴 ,作者周蘿蔔

Python 生態,向來以各種類庫齊全而聞名,這也是這門語言如此受歡迎的重要原因。今天就給大家分享一下這幾天整理的近千個 Python 庫!

數據處理

文字處理

chardet:字元編碼檢測器,該庫可以檢測文字、網頁、xml等多種檔案格式的編碼
difflib:文字差異比較
ftfy:使程式更加完美的支援 Unicode 編碼
fuzzywuzzy:可以進行字串的模糊匹配
Levenshtein:計算各種距離以及字串相似度
pangu.py:調整中日韓文字當中的字母、數字間距
pypinyin:漢字拼音轉換工具
shortuuid:用來生成 UUID
simplejson:JSON 編碼、解碼器
unidecode:Unicode 格式操作
uniout:列印字元,不進行轉義
xpinyin:把漢字轉換為拼音
yfiglet-figlet:pyfiglet -figlet 的 Python 實現
flashtext: 用於文字查詢替換
esmre:加速正則表示式
awesome slugify:用於處理 Unicode
python-slugify:把 unicode 轉化為 ASCII
unicode-slugify:可以生成 unicode slugs,依賴與 Django
phonenumbers:用於解析、格式化、儲存和驗證電話號碼
PLY:lex 和 yacc 解析工具
Pygments:語法高亮工具
pyparsing:可以生成通用解析器
python-nameparser:把人名分解為幾個獨立的部分
python-user-agents:瀏覽器 user agent 解析器
sqlparse:SQL 解析器

特殊文字處理

tablib:用來處理表格資料
Marmir:把 Python 資料結構轉換為電子表單
openpyxl:用來讀寫 Excel 檔案的庫
pyexcel:一個提供統一 API,用來操作 Excel 檔案的庫
python-docx:操作 Word 檔案
relatorio:模板化 OpenDocument 檔案
unoconv:轉換 LibreOffice/OpenOffice 檔案格式
XlsxWriter:用於建立 Excel.xlsx 檔案
xlwings:一個在 Excel 中呼叫 Python 的庫
xlwt/xlrd:讀寫 Excel 檔案的資料
PDFMiner:一個用於從 PDF 文件中抽取資訊的庫
PyPDF2:一個可以進行多種操作 PDF 頁面的庫
ReportLab:可以建立富文字 PDF 文件
Mistune:Markdown 解析器
Python-Markdown:有一個 Markdown 解析器
Python-Markdown2:純 Python 實現的 Markdown 解析器,比 Python-Markdown 更快,更準確,可擴充套件
PyYAML:YAML 解析器
csvkit:操作 CSV 的工具
unp:一個用來解包歸檔檔案的命令列工具

HTML/XML 解析

BeautifulSoup:解析 HTML 或 XML 格式資料
bleach:基於白名單的 HTML 清理和文字連結庫
cssutils:CSS 庫
html5lib:HTML 文件和片段解析及序列化庫
lxml:一個用來處理 HTML 和 XML 的庫
MarkupSafe:XML/HTML/XHTML 標記安全字串
pyquery:一個解析 HTML 的庫,類似 jQuery
requests-html:人性化的 HTML 解析庫
untangle:將 XML 文件轉換為 Python 物件
xhtml2pdf:HTML/CSS 轉 PDF 工具
xmltodict:像處理 JSON 一樣處理 XML
htmlparser,官方版解析 HTML DOM 樹

檔案處理

aiofiles:基於 asyncio 的檔案非同步操作庫
imghdr:檢測圖片型別
mimetypes:將檔名對映為 MIME 型別
path.py:更方便的路徑操作的模組
pathlib:跨平臺的、面向物件的路徑操作庫
python-magic:檔案型別檢測
Unipath:用面向物件的方式操作檔案和目錄
pickle/cPickle:實現了基本的資料序列和反序列化
watchdog:管理檔案系統事件的工具

配置檔案處理

ConfigParser:ini 檔案解析器
configobj:ini 檔案解析器
profig:多格式配置轉換工具
config:分級配置模組
python-decouple:將設定和程式碼完全隔離

文件相關

Sphinx:文件生成器
mkdocs:Markdown 格式文件生成器
pycco:簡單快速、程式設計風格的文件生成器
pdoc:從原始碼註釋中生成各種格式文件的工具
readthedocs:一個基於 Sphinx/MkDocs 的線上文件託管系統

日誌管理

logging:提供日誌功能
logbook:Logging 庫的替代品
Eliot:為複雜的和分散式系統建立日誌
Raven:Sentry 的 Python 客戶端
Sentry:實時記錄和收集日誌的伺服器

日期和時間

arrow:非常好的日期時間操作類庫
Chronyk:用於解析手寫格式的時間和日期
dateutil:datetime 模組的擴充套件
delorean:解決 Python 中有關日期處理問題的庫
maya:人性化的時間處理庫
moment:用來處理時間和日期的 Python 庫
pendulum:一個比 arrow 更具有明確的、可預測行為的時間操作庫
PyTime:用於透過字串來操作日期/時間
pytz:現代以及歷史版本的世界時區定義
when.py:進行常用的日期和時間操作

影像處理

影像處理

pillow:是一個更加易用的圖片操作庫
hmap:影象直方圖對映
imgSeek:使用視覺相似性搜尋一組圖片集合工具
nude.py:裸體檢測
pyBarcode:在 Python 程式中生成條形碼
pygram:類似 Instagram 的影象濾鏡
python-qrcode:一個二維碼生成器
Quads:基於四叉樹的計算機藝術
scikit-image:一個用於影象處理的庫
thumbor:一個小型影象服務
wand:MagickWand的 Python 版本
face_recognition:簡單易用的人臉識別庫

OCR

pyocr:Tesseract 和 Cuneiform 的一個封裝
pytesseract:Google Tesseract OCR 的另一個封裝
python-tesseract:Google Tesseract OCR 的一個包裝類

網路相關

下載

s3cmd:用來管理 Amazon S3 和 CloudFront 的命令列工具
s4cmd:S3 命令列工具
you-get:YouTube/Youku/Niconico 影片下載器
youtube-dl:用來下載 YouTube 影片的工具
Coursera:可以從 http://coursera.org 下載影片
subliminal:搜尋和下載字幕的庫

HTTP

aiohttp:基於 asyncio 的非同步 HTTP 庫
requests:最為流行的 HTTP 請求庫
grequests:requests 庫 + gevent 實現非同步 HTTP 請求
httplib2:HTTP 客戶端庫
treq:類似 requests 的 HTTP 客戶端
urllib3:一個具有執行緒安全的 HTTP 庫

網路視覺化

Mininet:一款流行的網路模擬器
POX:一個針對基於 Python 的軟體定義網路應用
Pyretic:為網路交換機和模擬器提供強大的抽象能力
SDX Platform:基於 SDN 的 IXP 實現
NRU:一個基於元件的軟體定義網路框架

URL 處理

furl:更加簡單的處理 URL 庫
purl:一個簡單的、不可變的 URL 類
pyshorteners:一個純 Python URL 縮短庫
shorturl:生成短小 URL 的庫

網路爬蟲

Scrapy:一個快速高階的網路採集框架
cola:一個分散式爬蟲框架
Demiurge:基於 PyQuery 的爬蟲框架
feedparser:feed 解析器
Grab:站點爬取框架
MechanicalSoup:用於自動和網路站點互動的庫
portia:Scrapy 視覺化爬蟲
pyspider:一個強大的爬蟲工具
RoboBrowser:一個簡單的網站瀏覽工具

網頁內容提取

Haul:一個可擴充套件的影象爬取工具
html2text:將 HTML 轉換為 Markdown 格式
lassie:網頁內容檢索庫
micawber:網頁內容提取庫,用來從 URLs 提取富內容
newspaper:進行新聞提取,文章提取以及內容策展
opengraph:用來解析開放內容協議的模組
python-goose:HTML 內容/文章提取器
python-readability:readability 工具的 Python 介面
sanitize:雜亂資料調整
sumy:為文字檔案和 HTML 頁面進行自動摘要的模組
textract:從任何格式的文件中提取文字
mechanize:網頁瀏覽工具

WebSocket

AutobahnPython:WebSocket & WAMP 工具
Crossbar:開源統一應用路由
django-socketio:給 Django 用的 WebSockets 工具
WebSocket-for-Python:WebSocket 客戶端和伺服器庫

RPC

SimpleJSONRPCServer:是 JSON-RPC 規範的一個實現
SimpleXMLRPCServer:簡單的 XML-RPC 伺服器實現
zeroRPC:是一個的 RPC 實現

Web 框架

全棧框架

Django:Python 界最流行的 web 框架
Flask:一個微型 Web 框架
pyramid:一個小巧快速的開源 Web 框架
Bottle:一個快速小巧,輕量級的 WSGI 微型 Web 框架
CherryPy:一個極簡 的Web 框架
TurboGears:一個可以擴充套件為全棧解決方案的微型框架
web.py:一個簡單,又強大 Web 框架
web2py:一個全棧 Web 框架
Tornado:一個 Web 框架和非同步網路庫
sanic:非同步網路框架
Karrigell:簡單的 Web 框架
PyDBLitewebpy:一個小巧靈活的 Web 框架
Quixote:一個 Web 開發框架
Grok:基於 Zope3 的 Web 框架
Bluebream:開源的 Web 應用伺服器
guava:輕量級高效能的 Web 框架

CMS

odoo-cms: 開源的企業級 CMS
django-cms:開源的企業級 CMS
djedi-cms:輕量級但卻非常強大的 Django CMS
FeinCMS:基於 Django 構建的先進的內容管理系統
Kotti:一個高階的 web 應用框架
Mezzanine:一個強大的靈活的內容管理平臺
Opps:一個為雜誌報紙網站設計的 CMS 平臺
Plone:一個構建於開源應用伺服器 Zope 之上的 CMS
Quokka:靈活可擴充套件的小型 CMS
Wagtail:一個 Django 內容管理系統
Widgy:最新的 CMS 框架,基於 Django

Web 許可權/安全

Carteblanche:程式碼對齊模組,很好地處理了程式碼導航及許可權
django-guardian:單個物件許可權
django-rules:一個小巧但是強大的應用,提供物件級別的許可權管理
Flask-OAuthlib:Flask的OAuth工具包
django-oauth-toolkit:為 Django 使用者準備的 OAuth2
django-allauth:Django 的驗證模組
Authomatic:簡單但是強大的框架,身份驗證/授權客戶端

商務框架

django-oscar:一個用於 Django 的電子商務框架
django-shop:基於 Django 的店鋪系統
Cartridge:基於 Mezzanine 構建的購物車應用
shoop:基於 Django 的電子商務平臺
alipay:支付寶 API
merchant:可以接收來自多種支付平臺支付的 Django 應用
money:貨幣類庫
python-currencies:顯示貨幣格式以及它的數值

Restful API

django-rest-framework:一個基於 Django 的工具,用來構建 Web API
django-tastypie:為 Django 應用開發 API 工具
django-formapi:Django 的表單驗證工具
flask-api:為 flask 開發的 API 工具
flask-restful:為 flask 快速建立 REST APIs 的工具
flask-restless:為 SQLAlchemy 資料庫模型而開發的 RESTful APIs
flask-api-utils:為 Flask 處理 API 表示和驗證
eve:由 Flask, MongoDB 等驅動 的 REST API 框架
cornice:一個 Pyramid 的 REST 框架
falcon:用來建立雲 API 和 Web app 後端的高效能框架
sandman:為資料庫驅動系統自動建立 REST APIs
restless:框架無關的 REST 框架
ripozo:快速建立 REST APIs 工具

模板引擎

Jinja2:一個現代的友好的模板引擎
Chameleon:一個 HTML/XML 模板引擎
Genshi:用以生成 Web 感知的結果
Mako:超高速輕量級模板

佇列

celery:一個非同步任務佇列/作業佇列
huey:小型多執行緒任務佇列
mrq:分散式 worker 任務佇列,使用 Redis 和 gevent
rq:簡單的作業佇列工具
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:用來編譯和壓縮資源
webassets:為靜態資源打包、最佳化和管理,生成獨一無二的快取 URL

快取

Beaker:快取會話的庫
django-cache-machine:自動快取和失效工具
django-cacheops:具有自動顆粒化事件驅動失效功能的 ORM
django-viewlet:渲染模板和額外的快取控制功能
dogpile.cache:是 Beaker 的下一代替代品
HermesCache:快取庫,具有基於標籤的失效和 dogpile effect 保護功能
johnny-cache:django 應用快取框架
pylibmc:libmemcached 介面封裝

表單

Deform:HTML 表單生成庫
django-bootstrap3:集成了 Bootstrap3 的 Django
django-crispy-forms:可以以一種非常優雅且 DRY(Don’t repeat yourself) 的方式來建立美觀的表單
django-remote-forms:一個平臺獨立的 Django 表單序列化工具
WTForms:一個靈活的表單驗證和呈現庫
WTForms-JSON:WTForms 擴充套件,用來處理 JSON 資料

資料驗證

Cerberus:對映驗證器
colander:用於對從 XML, JSON,HTML 表單獲取資料並序列化資料進行驗證和反序列化的系統
kmatch:一種用於匹配/驗證/篩選字典的工具
schema:用於對 Python 資料結構進行驗證的庫
Schematics:用於資料結構驗證
valideer:輕量級資料驗證和適配庫
voluptuous:資料驗證庫,主要是為了驗證傳入 Python 的 JSON,YAML 等資料

電子郵件

django-celery-ses:帶有 AWS SES 和 Celery 的 email 後端
envelopes:人性化的電子郵件庫
flanker:一個 email 地址和 Mime 解析庫
imbox:IMAP 庫
inbox.py:SMTP 伺服器
inbox:開源電子郵件工具箱
lamson:Python 風格的 SMTP 應用伺服器
mailjet:提供批次傳送郵件,統計等功能
marrow.mailer:高效能可擴充套件郵件分發框架
modoboa:郵件託管和管理平臺
pyzmail:建立、傳送和解析電子郵件
Talon:用來抽取資訊和簽名
django-simple-captcha:一個簡單、高度可定製的 Django 應用
django-simple-spam-blocker:一個用於 Django 的簡單的電子垃圾遮蔽工具

URL

webargs:解析 HTTP 請求引數的庫
short_url:短網址生成

國際化

Babel:一個 Python 的國際化庫
Korean:一個韓語詞態庫

管理面板

Ajenti:一個值得擁有的管理面板
django-suit:Django 管理介面的一個替代品
django-xadmin:Django admin 的一個替代品
flask-admin:一個用於 Flask 的簡單可擴充套件的管理介面框架
flower:一個對 Celery 叢集進行實時監控和提供 Web 管理介面的工具
Grappelli:Django 管理介面的一個漂亮的面板
Wooey:可以為 Python 指令碼建立 Web 使用者介面

靜態站點生成

Pelican:透過 Markdown 或 ReST 來處理內容,使用 Jinja2 來製作主題
Cactus:為專業設計師設計的靜態站點生成器
Hyde:基於 Jinja2 的靜態站點生成器
Nikola:靜態網站和部落格生成器
Tinkerer:一個部落格引擎/靜態站點生成器
Lektor:一個簡單易用的靜態 CMS 和部落格引擎
Tags:最簡單的靜態網站生成器

WSGI 伺服器

gunicorn:部分是由 C 語言編寫而成的 WSGI 工具
uwsgi:用來建立託管服務
bjoern:非同步速度非常快
fapws3:非同步,由 C 語言編寫
meinheld:非同步伺服器
netius:非同步,非常快速
paste:多執行緒,穩定,久經考驗
rocket:多執行緒
waitress:多執行緒
Werkzeug:一個 WSGI 工具庫

ORM

Django Models:Django 的重要組成
SQLAlchemy:SQL 工具以及物件關係對映工具
Peewee:一個小巧的 ORM
PonyORM:提供面向生成器的 SQL ORM
python-sql:Python 風格的 SQL 查詢
django-mongodb-engine:Django MongoDB 後端
PynamoDB:Amazon DynamoDB 的後端
flywheel:Amazon DynamoDB 的物件對映工具
MongoEngine:用於 MongoDB 物件文件對映工具
hot-redis:為 Redis 提供的後端
redisco:提供可以持續存在在 Redis 中的簡單模型和容器
butterdb:Google Drive 電子表格的 Python ORM

地理位置

GeoDjango:世界級地理圖形 Web 框架
GeoIP:MaxMind GeoIP Legacy 資料庫的 API
geojson:GeoJSON 的 Python 工具
geopy:地址編碼工具箱
pygeoip:純 Python GeoIP API
django-countries:提供用於表格的國家選擇功能,國旗圖示靜態檔案以及模型中的國家欄位

系統

程序

envoy:比 subprocess 模組更人性化的模組
sarge:另一 種 subprocess 模組的封裝
sh: subprocess 替代庫
subprocess:呼叫 shell 命令的神器

併發/並行

multiprocessing:基於程序的“執行緒”介面
threading:更高層的執行緒介面
eventlet:支援 WSGI 的非同步框架
gevent:基於協程的 Python 網路庫
Tomorrow:用於產生非同步程式碼的庫
uvloop:在 libuv 之上超快速實現 asyncio 事件迴圈的庫

資料庫相關

Python 實現的資料庫

pickleDB:簡單輕量級鍵值儲存資料庫
PipelineDB:流式 SQL 資料庫
TinyDB:微型的面向文件型資料庫
ZODB:鍵值和物件圖資料庫

資料庫驅動

aiomysql:基於 asyncio 的非同步 MySQL 資料庫操作庫
mysql-python:MySQL 資料庫聯結器
mysqlclient:mysql-python 分支
oursql:一個更好的 MySQL 聯結器
PyMySQL:純 Python MySQL 驅動
psycopg2:最流行的 PostgreSQL 介面卡
queries:psycopg2 庫的封裝
txpostgres:基於 Twisted 的非同步 PostgreSQL 驅動
apsw:SQLite 封裝
dataset:在資料庫中儲存 Python 字典
pymssql:一個簡單的 Microsoft SQL Server 資料庫介面
cassandra-python-driver:Cassandra 的 Python 驅動
HappyBase:為 Apache HBase 設計的庫
Plyvel:一個快速且功能豐富的 LevelDB 的介面庫
py2neo:Neo4j restful 介面的封裝客戶端
pycassa:Cassandra 的 Python Thrift 驅動
PyMongo:MongoDB 的官方 Python 客戶端
redis-py:Redis 的 Python 客戶端
telephus:基於 Twisted 的 Cassandra 客戶端
txRedis:基於 Twisted 的 Redis 客戶端

安全

OAuth

OAuthLib:一個 OAuth 請求-簽名庫
python-oauth2:完全測試的抽象介面
python-social-auth:設定簡單的社會化驗證方式
rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 庫
sanction:超級簡單的 OAuth2 客戶端實現

密碼

cryptography:提供密碼學基本內容和方法
hashids:在 Python 中實現 hashids
Paramiko:提供 ssh 客戶端和服務端的功能
Passlib:安全密碼儲存/雜湊庫
PyCrypto:密碼學工具箱
PyNacl:網路和密碼學庫

其他

jose:JavaScript 物件簽名和加密草案的實現
PyJWT:JSON Web 令牌
python-jws:JSON Web 簽名
python-jwt:用來生成和驗證 JSON Web 令牌的模組
Permissions:允許或拒絕使用者訪問資料或函式

人工智慧

自然語言處理

NLTK:先進的用以構建處理人類語言資料的程式
jieba:中文分詞工具
langid.py:獨立的語言識別系統
SnowNLP:用來處理中文文字的庫
TextBlob:自然語言處理工具
TextGrocery:簡單高效的短文字分類工具
thulac:清華大學自然語言處理與社會人文計算實驗室研製推出的一套中文詞法分析工具包
loso:中文分詞函式庫

計算機視覺

OpenCV:開源計算機視覺庫
pyocr:Tesseract 和 Cuneiform 的封裝庫
pytesseract:Google Tesseract OCR 的封裝庫
SimpleCV:用來建立計算機視覺應用的開源框架

機器學習/深度學習

Caffe: Caffe 的 Python 介面
Caffe2:一個輕量級的、模組化的,可擴充套件的深度學習框架
Crab:靈活、快速的推薦引擎
gensim:人性化的話題建模庫
hebel:深度學習庫
keras: 神經網路
MXNet:高效靈活的深度學習框架
NuPIC:智慧計算 Numenta 平臺
pattern:網路挖掘模組
PyBrain:機器學習庫
pydeep:深度學習庫
Pylearn2:基於 Theano 的機器學習庫
python-recsys:用來實現推薦系統的庫
Pytorch:具有張量和動態神經網路深度學習框架
scikit-learn:基於 SciPy 構建的機器學習模組
skflow:一個 TensorFlow 的簡化介面
TensorFlow:谷歌開源的最受歡迎的深度學習框架
Theano:快速數值計算庫
vowpalporpoise:輕量級 Vowpal Wabbit 的封裝
Milk:機器學習工具箱
PyMVPA(Multivariate Pattern Analysis in Python):為大資料集提供統計學習分析的 Python 工具包,它提供了一個靈活可擴充套件的框架

科學計算與資料分析

資料處理

astropy:天文學相關的庫
bcbio-nextgen:為全自動高通量測序分析提供符合最佳實踐的處理流程
bccb:生物分析
Biopython:是一組可以免費使用的用來進行生物計算的工具
blaze:NumPy 和 Pandas 的大資料介面
cclib:用來解析和解釋計算化學軟體包輸出結果的庫
NetworkX:為複雜網路設計的高效能工具
Neupy:執行和測試各種不同的人工神經網路演算法
Numba:針對資料科學用的 Python
NumPy:進行科學計算的基礎包
Open Babel:用來描述多種化學資料
Open Mining:使用 Python 挖掘商業情報
orange:進行資料探勘,資料視覺化,分析和機器學習
Pandas:資料結構和資料分析工具
PyDy:用來為動力學運動建模工作流程提供幫助
PyMC:馬爾科夫鏈蒙特卡洛取樣工具
RDKit:化學資訊學和機器學習軟體
SciPy:用於數學,科學和工程的開源軟體
statsmodels:統計建模和計量經濟學
SymPy:用於符號數學的庫
zipline:演算法交易庫
Bayesian-belief-networks:優雅的貝葉斯信念網路框架
ScientificPython:用於科學計算
visvis:視覺化計算模組庫

資料視覺化

matplotlib:最流行的 Python 繪相簿
bokeh:進行互動式 Web 繪圖
ggplot:ggplot2 的 Python 版本
plotly:基於 matplotlib 工作的 Web 繪相簿
pyecharts:基於百度 Echarts 的資料視覺化庫
pygal:SVG 圖表建立工具
pygraphviz:Graphviz 的 Python 實現
PyQtGraph:互動式實時影象繪製元件
SnakeViz:基於瀏覽器的模組輸出結果檢視工具
vincent:把 Python 轉換為 Vega 語法的轉換工具
VisPy:基於 OpenGL 的高效能科學視覺化工具

GUI 與遊戲開發

GUI

curses:內建的 ncurses 封裝,用來建立終端圖形使用者介面
enaml:建立美觀的使用者介面
kivy:用來建立使用者互動應用程式的庫
pyglet:跨平臺視窗及多媒體庫
PyQt:跨平臺使用者介面框架
PySide:跨平臺使用者介面框架 Qt
Tkinter:GUI 標準庫
Toga:作業系統原生的 GUI 工具包
urwid:用來建立終端 GUI 應用的庫
wxPython:是 wxWidgets C++ 類庫和 Python 語言混合的產物
PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 實現
Flexx:建立 GUI 程式的工具集,它使用 web 技術進行介面的展示
PyGtk:GUI 程式開發庫
turtle:Python 的畫圖工具

遊戲開發

Cocos2d:用來開發 2D 遊戲的工具
Panda3D:3D 遊戲引擎
Pygame:最為流行的編寫遊戲的模組
PyOgre:用來開發遊戲和模擬程式
PyOpenGL:OpenGL 的 Python 繫結及其相關 APIs
PySDL2:SDL2 庫的封裝
RenPy:一個視覺小說引擎
PySFML:視覺小說引擎

音影片

音訊

audiolazy:數字訊號處理包
audioread:交叉庫音訊解碼
beets:音樂庫管理工具
dejavu:音訊指紋提取和識別
django-elastic-transcoder:Django + Amazon Elastic Transcoder
eyeD3:用來操作音訊檔案的工具
id3reader:用來讀取 MP3 元資料
m3u8:用來解析 m3u8 檔案的模組
mutagen:用來處理音訊元資料
pydub:操作音訊檔案
pyechonest:Echo Nest API 的 Python 客戶端
talkbox:用來處理演講/訊號
TimeSide:開源的 Web 音訊處理框架
tinytag:用來讀取 MP3, OGG, FLAC 以及 Wave 檔案音樂元資料的庫
mingus:高階音樂理論和曲譜包

影片

moviepy:用來進行基於指令碼的影片編輯模組
scikit-video:SciPy 影片處理常用程式
shorten.tv:影片摘要

測試相關

測試框架

unittest:單元測試框架
nose:擴充套件了 unittest 的功能
contexts:BDD 框架
hypothesis:基於先進的 Quickcheck 風格特性的測試庫
mamba:Python 的終極測試工具
PyAutoGUI:PyAutoGUI 是一個人性化的跨平臺 GUI 自動測試模組
pyshould:基於 PyHamcrest 的測試模組
pytest:成熟的全功能測試工具
green:乾淨多彩的測試工具
pyvows:BDD 風格的測試工具
Robot Framework:通用的自動化測試框架

Web 測試

Selenium:Selenium WebDriver 的 Python 實現
locust:可擴充套件的使用者壓力測試工具
sixpack:和語言無關的 A/B 測試框架
splinter:開源的 Web 應用測試工具

Mock 測試

mock:用於偽造測試資料的庫
doublex:功能強大的 doubles 測試框架
freezegun:日期偽造模組
httmock:偽造請求的庫
httpretty:HTTP 請求 mock 工具
responses:偽造 requests 請求的庫
VCR.py:在測試中記錄和重放 HTTP 互動

物件工廠

factoryboy:測試韌體替代庫
mixer:另外一個測試韌體替代庫
modelmommy:為 Django 測試建立隨機韌體

程式碼覆蓋率

coverage:程式碼覆蓋率測量
Codecov:程式碼覆蓋率測試工具

偽資料

faker:用來生成偽資料
fake2db:偽資料庫生成器
radar:生成隨機的日期/時間
FuckIt.py:使用最先進的技術來保證 Python 程式碼無論對錯都能繼續執行

程式碼工具

程式碼分析

coala:語言獨立和易於擴充套件的程式碼分析應用程式
code2flow:把 Python 和 JavaScript 程式碼轉換為流程圖
pycallgraph:可以把 Python 應用的流程(呼叫圖)進行視覺化
pysonar2:型別推斷和檢索工具

Lint 工具

Flake8:模組化原始碼檢查工具
Pylint:完全可定製的原始碼分析器
YAPF: Google 的 Python 程式碼格式化工具
pylama:Python 和 JavaScript 的程式碼審查工具

程式碼格式化

autopep8:自動格式化 Python 程式碼,以使其符合 PEP8 規範
black:一個堅定的 Python 程式碼格式化工具

偵錯程式

ipdb:在 IPython 中啟用的 pdb
pudb:基於控制檯的 Python 偵錯程式
pyringe:可以在程序中附加和注入程式碼的偵錯程式
wdb:透過 WebSockets 工作的 Web 偵錯程式
winpdb:具有圖形使用者介面的 Python 偵錯程式
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 提供日誌功能
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:簡單的進行遠端執行和部署的工具
cuisine:為 Fabric 提供一系列高階函式
Fabtools:用來編寫 Fabric 檔案的工具
gitapi:Git 的純 Python API
hgapi:Mercurial 的純 Python API
honcho:用來管理基於 Procfile 的應用
pexpect:在一個偽終端中控制互動程式
psutil:跨平臺程序和系統工具模組
supervisor:UNIX 的程序控制系統

任務排程

APScheduler:輕巧但強大的程序內任務排程工具
django-schedule:一個 Django 排程應用
doit:任務執行和構建工具
gunnery:分散式系統使用的多用途任務執行工具
Joblib:提供輕量級作業流水線的工具
Plan:更好的編寫 crontab 檔案的工具
schedule:人性化的 Python 任務排程庫
Spiff:使用純 Python 實現的工作流引擎
TaskFlow:可以方便執行任務的庫
AirFlow:是一個工作流分配管理系統

高效能

Cython:最佳化的 Python 靜態編譯器
PeachPy:嵌入 Python 的 x86–64 彙編器
PyPy:使用 Python 實現的 Python 直譯器
Pyston:使用 LLVM 和現代 JIT 技術構建的 Python 實現
Stackless Python:一個強化版的 Python

Windows 環境

Python(x,y):面向科學應用的 Python 發行版
pythonlibs:非官方的 Windows 平臺 Python 擴充套件二進位制包
PythonNet:Python 與 .NET 公共語言執行庫的整合環境
PyWin32:針對 Windows 的 Python 擴充套件
WinPython:Windows 7/8 系統下行動式開發環境

硬體相關

ino:操作 Arduino 的命令列工具
Pyro:Python 機器人程式設計庫
PyUserInput:跨平臺的控制滑鼠和鍵盤的模組
scapy:操作資料包的庫
wifi:用來在 Linux 平臺上操作 WiFi
Pingo:為類似 Raspberry Pi,pcDuino, Intel Galileo 等裝置提供統一的 API

環境與包管理

環境管理

p:非常簡單的互動式 Python 版本管理工具
pyenv:簡單的 Python 版本管理工具
Vex:可以在虛擬環境中執行命令的工具
virtualenv:建立獨立 Python 環境的工具
virtualenvwrapper:virtualenv 的一組擴充套件
pew:一套管理多個虛擬環境的工具
PyRun:無需安裝的Python版本管理工具

包管理

pip:包和依賴關係管理工具
pip-tools:保證 Python 包依賴關係更新的一組工具
pipenv:官方推薦的新一代包管理工具
conda:跨平臺的二進位制包管理工具
Curdling:管理 Python 包的命令列工具
wheel:Python 分發的新標準
Pdm:新一代包管理工具
easy_install:軟體包管理系統

包倉庫

warehouse:下一代 PyPI
bandersnatch:PyPA 提供的 PyPI 映象工具
devpi:PyPI 服務和打包/測試/分發工具
localshop:本地 PyPI 服務
PyPI:新一代的 Python 包庫管理工具

分發與構建

軟體分發

PyInstaller:將 Python 程式轉換成獨立的執行檔案
dh-virtualenv:構建並將 virtualenv 虛擬環境作為一個 Debian 包來發布
Nuitka:將指令碼、模組、包編譯成可執行檔案或擴充套件模組
py2app:將 Python 指令碼變為獨立軟體包
py2exe:將 Python 指令碼變為獨立軟體包
pynsist:用來建立 Windows 安裝程式的工具
cx-Freeze:跨平臺的用於打包成可執行檔案的庫

構建

buildout:一個構建系統
BitBake:針對嵌入式 Linux 的構建工具
fabricate:自動找到依賴關係的構建工具
PlatformIO:多平臺命令列構建工具
PyBuilder:純 Python 實現的持續化構建工具
SCons:軟體構建工具

互動式直譯器

IPython:功能豐富的工具
bpython:介面豐富的 Python 解析器
ptpython:高階互動式 Python 解析器

命令列相關

命令列工具

asciimatics:跨平臺、全屏終端庫
cement:Python 的命令列程式框架
click:透過組合的方式來建立精美命令列介面的包
cliff:用於建立命令列程式的框架
clint:Python 命令列程式工具
colorama:跨平臺彩色終端文字
docopt:Python 風格的命令列引數解析器
Gooey:將命令列程式變成一個 GUI 程式
python-prompt-toolkit:用於構建強大的互動式命令列程式的庫
python-fire:Google 出品的一個構建命令列介面的庫
Pythonpy:在命令列中直接執行任何 Python 指令
Clime:可以轉換任何模組為多的 CLI 命令程式
docopt:Python 命令列引數分析器
pycli:命令列應用程式
rainbowstream:推特客戶終端
argparse:寫命令列指令碼工具
pyHook:基於 Python 的“鉤子”庫
pstuil:跨平臺地方便獲取和控制系統的程序庫

命令列高階工具

aws-cli:Amazon Web Services 的通用命令列介面
bashplotlib:在終端中進行繪圖
caniusepython3:判斷是哪個專案妨礙完美移植程式碼到 Python3
cookiecutter:從 cookiecutters 建立專案的一個命令列工具
doitlive:用來在終端中進行現場演示的工具
pyftpdlib:速度極快和可擴充套件的 Python FTP 服務庫
howdoi:透過命令列獲取即時的程式設計問題解答
httpie:命令列 HTTP 客戶端
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 與 Django 的結合
facebook-sdk:Facebook 平臺的 Python SDK
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:另一個用來呼叫 C 程式碼的外來函式介面
PyCUDA:Nvidia CUDA API 的封裝
SWIG:簡化的封裝和介面生成器

其他

MapReduce

dpark:Spark 的 Python 版
dumbo:可以讓人輕鬆的編寫和執行 Hadoop 程式
luigi:構建批處理作業的複雜流水線
mrjob:在 Hadoop 或 Amazon Web Services 上執行 MapReduce 任務
PySpark:Spark 的 Python API
streamparse:運行針對事實資料流的 Python 程式碼

函數語言程式設計

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-mode:將 Vim 變成 Python IDE
PTVS:Visual Studio 的 Python 工具

自動聊天工具

Errbot:簡單且流行的聊天機器人工具

金融資料

Tushare:可以提供免費股票、基金、期貨、港股等金融資料的開源工具
Ta-Lib:金融資料技術分析庫
AkSHare:一個非常棒的免費金融資料平臺

演算法和設計模式

algorithms:一個 Python 演算法模組
python-patterns:Python 設計模式的集合
sortedcontainers:SortedList,SortedDict 和 SortedSet 型別

雜七雜八

blinker:一個快速的 Python 程序內訊號/事件分發系統
itsdangerous:一系列輔助工具,用來將可信的資料傳入不可信的環境
pluginbase:一個簡單但是靈活的 Python 外掛系統
Pychievements:一個用來建立和追蹤成就的 Python 框架
Tryton:一個通用商務框架

立即試用FineBI免費版:

https://intl.finebi.com/zh-tw/trial?utm_source=Medium_Banner

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~

文章推薦

餅圖變形記,肝了3000字,收藏就是學會!

MySQL必須掌握4種語言!

太實用了!4種方法教你輕鬆製作互動式儀表板!

跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求

妙呀!一行Python程式碼

--

--

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/