2021年12月30日 星期四
Python 資源大全
Python 資源大全中文版
awesome-python 是 vinta 發起維護的 Python 資源清單,內容包括:Web 框架、網路爬蟲、網路內容提取、範本引擎、資料庫、資料視覺化、圖片處理、文本處理、自然語言處理、機器學習、日誌、代碼分析等。由「開源前哨」和「Python開發者」微信公號團隊維護更新。
本專案的參與者
• 維護者:「開源前哨」和「Python開發者」微信公號團隊。「開源前哨」會定期在知乎專欄分享最新、有趣和熱門的開源項目,每個項目都有詳細的介紹和示例。傳送門:https://www.zhihu.com/column/c_1317124962785062912
• 貢獻者:唐尤華、qtvspa、艾淩風、Namco、Daetalus、黃利民、atupal、rainbow、木頭lbj、beyondwu、cissoid、李廣勝、polyval、冰斌、趙葉宇、л stalgic、碩恩、strongit、yuukilp、chenjiandongx、autopenguin、visonforcoding、Super賽亞人、Since-future、knktc、zhucebuliaopx、wardseptember、vmp65l3、JiaxingZhao、zhtyyx、Lynn Cao、River、You
注:名單不分排名,不定期補充更新
資源列表
環境管理
管理 Python 版本和環境的工具
• p:非常簡單的互動式 Python 版本管理工具。
• pyenv:簡單的 Python 版本管理工具。
• Vex:可以在虛擬環境中執行命令。
• virtualenv:創建獨立 Python 環境的工具。
• virtualenvwrapper:virtualenv 的一組擴展。
• buildout:在隔離環境初始化後使用聲明性配置管理。
包管理
管理包和依賴的工具。
• pip:Python 包和依賴關係管理工具。
• pip-tools:保證 Python 包依賴關係更新的一組工具。
• PyPI:Python 正式的協力廠商包軟體存儲庫。
• pipenv:Python 官方推薦的新一代包管理工具。
• poetry:可完全取代 setup.py 的包管理工具。
• conda:跨平臺的 Python 二進位包管理工具。
• Curdling:管理 Python 包的命令列工具。
• wheel:Python 分發的新標準,意在取代 eggs。
包倉庫
本地 PyPI 倉庫服務和代理。
• warehouse:下一代 PyPI。
• bandersnatch:PyPA 提供的 PyPI 鏡像工具。
• devpi:PyPI 服務和打包/測試/分發工具。
• localshop:本地 PyPI 服務(自訂包並且自動對 PyPI 鏡像)。
分發
打包為可執行檔以便分發。
• PyInstaller:將 Python 程式轉換成獨立的執行檔(跨平臺)。
• cx_Freeze:將python程式轉換為帶有一個動態連結程式庫的可執行檔。
• dh-virtualenv:構建並將 virtualenv 虛擬環境作為一個 Debian 包來發佈。
• Nuitka:將腳本、模組、包編譯成可執行檔或擴展模組。
• py2app:將 Python 腳本變為獨立套裝軟體(Mac OS X)。
• py2exe:將 Python 腳本變為獨立套裝軟體(Windows)。
• pynsist:一個用來創建 Windows 安裝程式的工具,可以在安裝程式中打包 Python 本身。
• pyarmor:一個用於加密 python 腳本的工具,也可以將加密後的腳本綁定到固件上,或設置已加密腳本的有效期。
• shiv:一個命令列工具,可用于構建完全獨立的 zip 應用(PEP 441 所描述的那種),同時包含了所有的依賴項。
構建工具
將源碼編譯成軟體。
• buildout:一個構建系統,從多個元件來創建,組裝和部署應用。
• BitBake:針對嵌入式 Linux 的類似 make 的構建工具。
• fabricate:對任何語言自動找到依賴關係的構建工具。
• PlatformIO:多平臺命令列構建工具。
• PyBuilder:純 Python 實現的持續化構建工具。
• SCons:軟體構建工具。
互動式解析器
互動式 Python 解析器。
• IPython:功能豐富的工具,非常有效的使用互動式 Python。
• bpython:介面豐富的 Python 解析器。
• ptpython:高級互動式 Python 解析器, 構建於 python-prompt-toolkit 之上。
• Jupyter Notebook (IPython):一個能夠讓你最大限度地以互動式方式使用 Python 的豐富工具包。
o awesome-jupyter
文件
檔管理和 MIME(多用途的網際郵件擴充協議)類型檢測。
• aiofiles:基於 asyncio,提供檔非同步作業。
• imghdr:(Python 標準庫)檢測圖片類型。
• mimetypes:(Python 標準庫)將檔案名映射為 MIME 類型。
• path.py:對 os.path 進行封裝的模組。
• pathlib:(Python3.4+ 標準庫)跨平臺的、物件導向的路徑操作庫。
• python-magic:檔案類型檢測的協力廠商庫 libmagic 的 Python 介面。
• Unipath:用物件導向的方式操作檔和目錄。
• watchdog:管理檔案系統事件的 API 和 shell 工具。
• PyFilesystem2:Python 的檔案系統抽象層。
日期和時間
操作日期和時間的類庫。
• arrow:更好的 Python 日期時間操作類庫。
• Chronyk:Python 3 的類庫,用於解析手寫格式的時間和日期。
• dateutil:Python datetime 模組的擴展。
• delorean:解決 Python 中有關日期處理的棘手問題的庫。
• maya:人性化的時間處理庫。
• pendulum:一個比 arrow 更具有明確的,可預測的行為的時間操作庫。
• PyTime:一個簡單易用的 Python 模組,用於通過字串來操作日期/時間。
• pytz:現代以及歷史版本的世界時區定義。將時區資料庫引入 Python。
• when.py:提供使用者友好的函數來説明使用者進行常用的日期和時間操作。
• dateutil:Python 標準包 datetime 的擴展。
• moment:一個處理日期/時間的庫,靈感來自 Moment.js。
• pytz:支援跨平臺時區計算,並將 tz database 引入 Python。
文本處理
用於解析和操作文本的庫。
• 通用
o chardet:字元編碼檢測器,相容 Python 2 和 Python 3。
o difflib:(Python 標準庫)幫助我們進行差異化比較。
o ftfy:讓 Unicode 文本更完整更連貫。
o thefuzz:模糊字串匹配。
o Levenshtein:快速計算編輯距離以及字串的相似度。
o pangu.py:在中日韓語字元和數位字母之間添加空格。
o pypinyin:漢字拼音轉換工具 Python 版。
o shortuuid:一個生成器庫,用以生成簡潔的,明白的,URL 安全的 UUID。
o simplejson:Python 的 JSON 編碼、解碼器。
o unidecode:Unicode 文本的 ASCII 轉換形式 。
o uniout:列印可讀的字元,而不是轉義的字串。
o xpinyin:一個用於把漢字轉換為拼音的庫。
o pyfiglet:figlet 的 Python 實現。
o flashtext:一個高效的文本查找替換庫。
o textdistance:支援 30 多種演算法來計算序列之間的距離。
• Slug 化
o awesome-slugify:一個 Python slug 化庫,可以保持 Unicode。
o python-slugify:Python slug 化庫,可以把 unicode 轉化為 ASCII。
o unicode-slugify:一個 slug 工具,可以生成 unicode slugs ,需要依賴 Django 。
• 解析器
o phonenumbers:解析,格式化,儲存,驗證電話號碼。
o python-phonenumbers:解析,格式化,存儲,校驗國際電話號碼。
o PLY:lex 和 yacc 解析工具的 Python 實現。
o Pygments:通用語法高亮工具。
o pyparsing:生成通用解析器的框架。
o python-nameparser:把一個人名分解為幾個獨立的部分。
o python-user-agents:流覽器 user agent 解析器。
o sqlparse:一個無驗證的 SQL 解析器。
特殊文本格式處理
一些用來解析和操作特殊文本格式的庫。
• 通用
o tablib:一個用來處理中表格資料的模組。
• Office
o Marmir:把輸入的 Python 資料結構轉換為電子表單。
o openpyxl:一個用來讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 檔的庫。
o pyexcel:一個提供統一 API,用來讀寫,操作 Excel 檔的庫。
o python-docx:讀取,查詢以及修改 Microsoft Word 2007/2008 docx 檔。
o python-pptx:可用於創建和修改 ppt 檔的 Python 庫。
o relatorio:範本化 OpenDocument 檔。
o unoconv:在 LibreOffice/OpenOffice 支持的任意檔案格式之間進行轉換。
o XlsxWriter:一個用於創建 Excel .xlsx 檔的 Python 模組。
o xlwings:一個使得在 Excel 中方便調用 Python 的庫(反之亦然),基於 BSD 協議。
o xlwt / xlrd:讀寫 Excel 檔的資料和格式資訊。
o docxtpl:通過 jinja2 模版編輯 docx 文檔。
• PDF
o PDFMiner:一個用於從 PDF 文檔中抽取資訊的工具。
o PyPDF2:一個可以分割,合併和轉換 PDF 頁面的庫。
o ReportLab:快速創建富文本 PDF 文檔。
• Markdown
o Mistune:快速並且功能齊全的純 Python 實現的 Markdown 解析器。
o Python-Markdown:John Gruber’s Markdown 的 Python 版實現。
o Python-Markdown2:純 Python 實現的 Markdown 解析器,比 Python-Markdown 更快,更準確,可擴展。
• YAML
o PyYAML:Python 版本的 YAML 解析器。
• CSV
o csvkit:用於轉換和操作 CSV 的工具。
• Archive
o unp:一個用來方便解包歸檔檔的命令列工具。
自然語言處理
用來處理人類語言的庫。
• NLTK:一個先進的平臺,用以構建處理人類語言資料的 Python 程式。
• gensim:人性化的話題建模庫。
• jieba:中文分詞工具。
• langid.py:獨立的語言識別系統。
• Pattern:Python 網路資訊挖掘模組。
• SnowNLP:一個用來處理中文文本的庫。
• TextBlob:為進行普通自然語言處理任務提供一致的 API。
• TextGrocery:一簡單高效的短文本分類工具,基於 LibLinear 和 Jieba。
• thulac:清華大學自然語言處理與社會人文計算實驗室研製推出的一套中文詞法分析工具包。
• polyglot:支援數百種語言的自然語言處理管道。
• pytext:基於 PyTouch 的自然語言模型框架。
• PyTorch-NLP:一個支持快速深度學習 NLP 原型研究的工具包。
• spacy:Python 和 Cython 中用於工業級自然語言處理的庫。
• Stanza:斯坦福 NLP 集團的官方 Python 庫,支援 60 多種語言。
• funNLP:中文自然語言處理的工具和資料集。
• pkuseg-python:一個支持對不同領域進行中文分詞的工具箱。
文檔
用以生成項目文檔的庫。
• Sphinx:Python 文檔生成器。
o awesome-sphinxdoc
• MkDocs:對 Markdown 友好的文檔生成器。
• pdoc:一個可以替換 Epydoc 的庫,可以自動生成 Python 庫的 API 文檔。
• Pycco:文學程式設計(literate-programming)風格的文檔生成器。
• readthedocs:一個基於 Sphinx/MkDocs 的線上文檔託管系統,對開源專案免費開放使用。
配置
用來保存和解析配置的庫。
• config:logging 模組作者寫的分級配置模組。
• ConfigObj:INI 檔解析器,帶驗證功能。
• ConfigParser:(Python 標準庫) INI 檔解析器。
• profig:通過多種格式進行配置,具有數值轉換功能。
• python-decouple:將設置和代碼完全隔離。
• hydra:一個優雅地配置複雜應用程式的框架。
命令列工具
用於創建命令列程式的庫。
• 命令列程式開發
o cement:Python 的命令列程式框架。
o click:一個通過組合的方式來創建精美命令列介面的包。
o cliff:一個用於創建命令列程式的框架,可以創建具有多層命令的命令列程式。
o clint:Python 命令列程式工具。
o docopt:Python 風格的命令列參數解析器。
o Gooey:一條命令,將命令列程式變成一個 GUI 程式。
o python-prompt-toolkit:一個用於構建強大的互動式命令列程式的庫。
o python-fire:Google 出品的一個基於 Python 類的構建命令列介面的庫。
o Pythonpy:在命令列中直接執行任何 Python 指令。
• 終端呈現方式
o asciimatics:跨平臺,全屏終端包(即滑鼠/鍵盤輸入和彩色,定位文本輸出),完整的複雜動畫和特殊效果的高級 API。
o alive-progress:一款新的進度條,具有即時輸送量資訊以及非常酷的動畫。
o colorama:跨平臺彩色終端文本。
o bashplotlib:在終端中進行基本繪圖。
o rich:一個在終端中支援富文本和格式美化的 Python 庫, 同時提供了RichHandler日誌處理常式。
o tqdm:一個可在迴圈和命令列中使用的快速、可擴展的進度條。
• 生產力工具
o aws-cli:Amazon Web Services 的通用命令列介面。
o caniusepython3:判斷是哪個專案妨礙你你移植到 Python 3。
o cookiecutter:從 cookiecutters(專案範本)創建專案的一個命令列工具。
o doitlive:一個用來在終端中進行現場演示的工具。
o pyftpdlib:一個速度極快和可擴展的 Python FTP 服務庫。
o howdoi:通過命令列獲取即時的程式設計問題解答。
o PathPicker:從 bash 輸出中選出檔。
o percol:向 UNIX shell 傳統管道概念中加入互動式選擇功能。
o thefuck:修正你之前的命令列指令。
o try:一個極其簡單的命令列工具,用來試用 python 庫。
o copier:用於呈現專案範本的庫和命令列實用程式。
o Invoke:用於管理面向 shell 的子進程,同時支援將可執行的 Python 代碼組織成命令列可調用的狀態。
o tmuxp: tmux 會話管理器。
• 高級 CLI
o httpie:一個命令列 HTTP 用戶端,cURL 的替代品,易用性更好。
o iredis:支援自動補全和高亮顯示的 redis 命令列工具。
o kube-shell:K8S 命令列集成的 shell 工具。
o litecli:支援自動補全和語法高亮的 SQLite 命令列工具。
o mycli:支援自動補全和語法高亮的 MySQL 命令列用戶端
o pgcli:支援自動補全和語法高亮的 Postgres 命令列工具。
o SAWS:一個加強版的 AWS 命令列。
• Shell
o xonsh:一種基於 python 的跨平臺,面向 unix 的 shell 語言和命令提示符。
下載器
用來進行下載的庫.
• s3cmd:一個用來管理 Amazon S3 和 CloudFront 的命令列工具。
• s4cmd:超級 S3 命令列工具,性能更加強勁。
• you-get:一個 YouTube/Youku/Niconico 視頻下載器,使用 Python 3 編寫。
• youtube-dl:一個小巧的命令列程式,用來下載 YouTube 視頻。
• akshare:為方便人使用而創建的金融資料介面庫。
影像處理
用來操作圖像的庫.
• pillow:Pillow 是一個更加易用版的 PIL。
• hmap:圖像長條圖映射。
• imgSeek:一個使用視覺相似性搜索一組圖片集合的專案。
• nude.py:裸體檢測。
• python-barcode:不借助其他庫在 Python 程式中生成條碼。
• pygram:類似 Instagram 的圖像濾鏡。
• python-qrcode:一個純 Python 實現的二維碼生成器。
• Quads:基於四叉樹的電腦藝術。
• scikit-image:一個用於(科學)影像處理的 Python 庫。
• thumbor:一個小型圖像服務,具有剪裁,尺寸重設和翻轉功能。
• wand:MagickWand 的 Python 綁定。MagickWand 是 ImageMagick 的 C API 。
• face_recognition:簡單易用的 Python 人臉識別庫。
• pagan:基於輸入和雜湊的復古風圖示(頭像)生成工具。
• PyMatting:支持 alpha matting 的庫。
• pywal:由圖像生成配色方案的工具。
• pyvips:低記憶體消耗且快速的影像處理庫。
OCR
光學字元辨識庫。
• paddleocr: 除光學字元辨識外還引入了表格識別。
• pyocr:Tesseract 和 Cuneiform 的一個封裝。
• pytesseract: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 檔和重播功能。
• kapre:Keras 音訊處理器。
• librosa:音訊音樂分析 Python 庫。
• matchering:用於音訊母帶製作的庫。
• pyAudioAnalysis:音訊特徵提取,分類,分段和應用。
• beets:一個音樂庫管理器和 MusicBrainz 標記器。
Video
用來操作視頻和 GIF 的庫。
• moviepy:一個用來進行基於腳本的視頻編輯模組,適用於多種格式,包括動圖 GIFs。
• scikit-video:SciPy 視頻處理常用程式。
• vidgear: 強大的多執行緒視頻處理框架。
地理位置
地理編碼位址以及用來處理經緯度的庫。
• GeoDjango:世界級地理圖形 web 框架。
• GeoIP:MaxMind GeoIP Legacy 資料庫的 Python API。
• geojson:GeoJSON 的 Python 綁定及工具。
• geopy:Python 位址編碼工具箱。
• GeoIP2:GeoIP2 Webservice 用戶端與資料庫 Python API。
• django-countries:一個 Django 應用程式,提供用於表格的國家選擇功能,國旗圖示靜態檔以及模型中的國家欄位。
• pygeoip:Python GeoIP 介面。
HTTP
使用 HTTP 的庫。
• aiohttp:基於 asyncio 的非同步 HTTP 網路庫。
• requests:人性化的 HTTP 請求庫。
• grequests:requests 庫 + gevent ,用於非同步 HTTP 請求。
• httplib2:全面的 HTTP 用戶端庫。
• treq:類似 requests 的 Python API 構建於 Twisted HTTP 用戶端之上。
• urllib3:一個具有執行緒安全連接池,支持檔 post,清晰友好的 HTTP 庫。
• httpx:下一代 Python HTTP 用戶端。
資料庫
Python 實現的資料庫。
• pickleDB:一個簡單,羽量級鍵值儲存資料庫。
• PipelineDB:流式 SQL 資料庫。
• TinyDB:一個微型的,面向文檔型資料庫。
• ZODB:一個 Python 原生物件資料庫。一個鍵值和物件圖資料庫。
資料庫驅動
用來連接和操作資料庫的庫。
• MySQL:awesome-mysql 系列
o aiomysql:基於 asyncio 的非同步 MySQL 資料庫操作庫。
o mysql-python:Python 的 MySQL 資料庫連接器。
o ysqlclient:mysql-python 分支,支援 Python 3。
o oursql:一個更好的 MySQL 連接器,支援原生預編譯指令和 BLOBs。
o PyMySQL:純 Python MySQL 驅動,相容 mysql-python。
• PostgreSQL
o psycopg2:Python 中最流行的 PostgreSQL 適配器。
o queries:psycopg2 庫的封裝,用來和 PostgreSQL 進行交互。
o txpostgres:基於 Twisted 的非同步 PostgreSQL 驅動。
• 其他關係型數據庫
o apsw:另一個 Python SQLite 封裝。
o dataset:在資料庫中存儲 Python 字典
o pymssql:一個簡單的 Microsoft SQL Server 資料庫介面。
• NoSQL 資料庫
o asyncio-redis:基於 asyncio 的 redis 用戶端 (PEP 3156)。
o cassandra-python-driver:Cassandra 的 Python 驅動。
o HappyBase:一個為 Apache HBase 設計的,對開發者友好的庫。
o Plyvel:一個快速且功能豐富的 LevelDB 的 Python 介面。
o py2neo:Neo4j restful 介面的 Python 封裝用戶端。
o pycassa:Cassandra 的 Python Thrift 驅動。
o PyMongo:MongoDB 的官方 Python 用戶端。
o redis-py:Redis 的 Python 用戶端。
o telephus:基於 Twisted 的 Cassandra 用戶端。
o txRedis:基於 Twisted 的 Redis 用戶端。
o kafka-python:Apache Kafka Python 用戶端。
• 非同步用戶端
o motor:支援 MongoDB 的非同步 Python 驅動程式。
ORM
實現物件關係映射或資料映射技術的庫。
• 關係型數據庫
o Django Models:Django 的一部分。
o SQLAlchemy:Python SQL 工具以及物件關係映射工具。
awesome-sqlalchemy
o awesome-sqlalchemy 系列
o Peewee:一個小巧,富有表現力的 ORM。
o PonyORM:提供面向生成器的 SQL 介面的 ORM。
o python-sql:編寫 Python 風格的 SQL 查詢。
o dataset:在資料庫中存儲字典,支援 SQLite,MySQL 和 PostgreSQL。
o orator:Orator ORM,提供了一個簡單而美觀的 ActiveRecord 實現。
o orm:一個非同步的 ORM。
o pony:提供面向生成器的SQL介面的ORM。
o pydal:純 Python 資料庫抽象介面層。
• NoSQL 資料庫
o django-mongodb-engine:Django MongoDB 後端。
o PynamoDB:Amazon DynamoDB 的一個 Python 風格介面。
o flywheel:Amazon DynamoDB 的物件映射工具。
o MongoEngine:一個 Python 物件文檔映射工具,用於 MongoDB。
o hot-redis:為 Redis 提供 Python 豐富的資料類型。
o redisco:一個 Python 庫,提供可以持續存在在 Redis 中的簡單模型和容器。
• 其他
o butterdb:Google Drive 試算表的 Python ORM。
Web 框架
全棧 Web 框架。
• Django:Python 界最流行的 web 框架。
o awesome-django(by shahraizali) 系列
o awesome-django(by wsvincent) 系列
• Flask:一個 Python 微型框架。
o awesome-flask 系列
• Pyramid:一個小巧,快速,接地氣的開源 Python web 框架。
o awesome-pyramid 系列
• Bottle:一個快速小巧,羽量級的 WSGI 微型 web 框架。
• CherryPy:一個極簡的 Python web 框架,服從 HTTP/1.1 協議且具有 WSGI 執行緒池。
• TurboGears:一個可以擴展為全棧解決方案的微型框架。
• web.py:一個 Python 的 web 框架,既簡單,又強大。
• web2py:一個全棧 web 框架和平臺,專注于簡單易用。
• Tornado:一個 web 框架和非同步網路庫。
• sanic:基於 Python3.5+ 的非同步網路框架。
• starlette: 一款羽量級,高性能的 ASGI 框架。
• Masonite:以開發者為中心的現代 Python Web 框架。
WebSocket
Web socket 相關庫。
• autobahn-python:適用於 Twisted 和 asyncio 的 Python WebSocket 和 WAMP。
• channels:開發者友好的 Django 非同步工具。
• websockets:一個用於構建 WebSocket 伺服器和用戶端的庫,著重於正確性和簡單性。
許可權
允許或拒絕使用者訪問資料或功能的庫。
• Carteblanche:站在用戶和設計者角度開發的一個代碼對齊模組,很好地處理了代碼導航及許可權。
• 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。
• indico:一個功能豐富的事件管理系統,由 @CERN 開發。
電子商務
用於電子商務以及支付的框架和庫。
• django-oscar:一個用於 Django 的開源的電子商務框架。
• django-shop:一個基於 Django 的店鋪系統。
• Cartridge:一個基於 Mezzanine 構建的購物車應用。
• shoop:一個基於 Django 的開源電子商務平臺。
• alipay:非官方的 Python 支付寶 API。
• merchant:一個可以接收來自多種支付平臺支付的 Django 應用。
• money:一個貨幣類庫。帶有可選的 CLDR 後端當地語系化格式,提供可擴展的貨幣兌換解決方案。
• python-currencies:顯示貨幣格式以及它的數值。
• forex-python:外匯匯率,比特幣價格指數和貨幣換算。
• saleor:一款相容 Django 的電子商務平臺。
RESTful API
用來開發 RESTful APIs 的庫
• Django
o django-rest-framework:一個強大靈活的工具,用來構建 web API。
o django-tastypie:為 Django 應用開發 API。
o django-formapi:為 Django 的表單驗證,創建 JSON APIs 。
• Flask
o flask-api:為 flask 開發的,可流覽 Web APIs 。
o flask-restful:為 flask 快速創建 REST APIs 。
o flask-restless:為 SQLAlchemy 定義的資料庫模型創建 RESTful APIs 。
o flask-api-utils:為 Flask 處理 API 表示和驗證。
o eve:REST API 框架,由 Flask, MongoDB 等驅動。
• Pyramid
o cornice:一個 Pyramid 的 REST 框架 。
• 與框架無關的
o falcon:一個用來建立雲 API 和 web app 後端的高性能框架。
o sandman:為現存的資料庫驅動系統自動創建 REST APIs 。
o restless:框架無關的 REST 框架 ,基於從 Tastypie 學到的知識。
o ripozo:快速創建 REST/HATEOAS/Hypermedia APIs。
o apistar:專為Python 3設計的智慧 Web API 框架。
o fastapi:一個現代,快速,基於標準 Python 類型注解的的 web框架,可使用 Python3.6+ 版本構建 API。
o hug:一個為純淨公開的 API 打造的 Python 3 框架。
o sandman2:為資料庫驅動的系統自動生成 REST API。
o vibora:快速高效且支援非同步的 Web 框架,靈感來源於 Flask。
驗證
實現驗證方案的庫。
• OAuth
o authlib:一個強大的Python庫,用來構建 OAuth 和 OpenID 服務端。包括:JWS, JWK, JWA, JWT。
o Authomatic:簡單但是強大的框架,身份驗證/授權用戶端。
o django-allauth:Django 的驗證應用。
o django-oauth-toolkit:為 Django 用戶準備的 OAuth2。
o django-oauth2-provider:為 Django 應用提供 OAuth2 接入。
o Flask-OAuthlib:OAuth 1.0/a, 2.0 用戶端實現,供 Flask 使用。
o OAuthLib:一個 OAuth 請求-簽名邏輯通用、 完整的實現。
o python-oauth2:一個完全測試的抽象介面。用來創建 OAuth 用戶端和服務端。
o python-social-auth:一個設置簡單的社會化驗證方式。
o rauth:OAuth 1.0/a, 2.0, 和 Ofly 的 Python 庫。
o sanction:一個超級簡單的 OAuth2 用戶端實現。
• 其他
o PyJWT:JSON Web 權杖草案 01。
o python-jws:JSON Web 簽名草案 02 的實現。
o python-jwt:一個用來生成和驗證 JSON Web 權杖的模組。
o python-jose:python 版 JOSE 實現。
範本引擎
範本生成和詞法解析的庫和工具。
• Jinja2:一個現代的,對設計師友好的範本引擎。
• Chameleon:一個 HTML/XML 範本引擎。 模仿了 ZPT(Zope Page Templates), 進行了速度上的優化。
• Genshi:Python 範本工具,用以生成 web 感知的結果。
• Mako:Python 平臺的超高速羽量級範本。
佇列
處理事件以及任務佇列的庫。
• celery:一個非同步任務佇列/作業佇列,基於分散式消息傳遞
• daramatiq:適用於Python 3的快速可靠的幕後工作處理庫。
• 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 用戶端。
• pysolr:支持 Apache Solr 的羽量級 Python 裝飾器。
• Whoosh:一個快速的純 Python 搜尋引擎庫。
動態消息
用來創建用戶活動的庫。
• django-activity-stream:從你的網站行為中生成通用活動資訊流。
• Stream-Framework:使用 Cassandra 和 Redis 創建動態消息和通知系統。
Web 資源管理
管理、壓縮、縮小網站資源的工具。
• django-compressor:將連結和內聯的 JavaScript 或 CSS 壓縮到一個單獨的快取檔案中。
• django-pipeline:Django 的資源包裝庫。
• 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 封裝。
• python-diskcache:SQLite 和檔支援的緩存後端,具有比 memcached 和 redis 更快的查找速度。
電子郵件
用來發送和解析電子郵件的庫。
• 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用戶端,旨在使其盡可能簡單地發送電子郵件。
• salmon:一個 Python 郵件伺服器。
• mailer:一款高性能可擴展的郵件投遞框架。
國際化
用來進行國際化的庫。
• Babel:一個 Python 的國際化庫。
• Korean:一個韓語詞態庫。
• PyICU:一個封裝了 ICU C++ 庫的 Python 擴展。
URL 處理
解析 URLs 的庫
• furl:一個讓處理 URL 更簡單小型 Python 庫。
• purl:一個簡單的,不可變的 URL 類,具有簡潔的 API 來進行詢問和處理。
• pyshorteners:一個純 Python URL 縮短庫。
• shorturl:生成短小 URL 和類似 bit.ly 短鏈的 Python 實現。
• webargs:一個解析 HTTP 請求參數的庫,內置對流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado 和 Pyramid。
HTML 處理
處理 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。
• WeasyPrint:用於HTML和CSS的視覺化呈現引擎,並可以匯出為 PDF。
• xmldataset:簡單 XML 解析。
爬取網路網站的庫
• Scrapy:一個快速高級的螢幕爬取及網頁採集框架。
• ScrapydWeb:一個用於 Scrapyd 集群管理的全功能 web UI,支援 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 內容/文章提取器(python2)。
• goose3:HTML 內容/文章提取器(python3)。
• python-readability:arc90 公司 readability 工具的 Python 高速埠。
• sanitize:為雜亂的資料世界帶來調理性。
• sumy:一個為文字檔和 HTML 頁面進行自動摘要的模組。
• textract:從任何格式的文檔中提取文本,Word,PowerPoint,PDFs 等等。
表單
進行表單操作的庫。
• Deform:Python HTML 表單生成庫,受到了 formish 表單生成庫的啟發。
• django-bootstrap3:集成了 Bootstrap 3 的 Django。
• django-bootstrap4:集成了 Bootstrap 4 的 Django。
• django-crispy-forms:一個 Django 應用,他可以讓你以一種非常優雅且 DRY (Don't repeat yourself) 的方式來創建美觀的表單。
• django-remote-forms:一個平臺獨立的 Django 表單序列化工具。
• WTForms:一個靈活的表單驗證和呈現庫。
• WTForms-JSON:一個 WTForms 擴展,用來處理 JSON 資料。
資料驗證
資料驗證庫。多用於表單驗證。
• Cerberus:一個映射驗證器(mappings-validator)。支援多種規則,提供歸一化功能,可以方便地定制為 Python 風格的 schema 定義。
• colander:一個用於對從 XML, JSON,HTML 表單獲取的資料或其他同樣簡單的序列化資料進行驗證和反序列化的系統。
• kmatch:一種用於匹配/驗證/篩選 Python 字典的語言。
• schema:一個用於對 Python 資料結構進行驗證的庫。
• Schematics:資料結構驗證。
• valideer:羽量級可擴展的資料驗證和適配庫。
• voluptuous:一個 Python 資料驗證庫。主要是為了驗證傳入 Python 的 JSON,YAML 等資料。
• jsonschema:JSON Schema 的 python 實現,用於 JSON 資料的驗證。
序列化
複雜資料類型序列化相關庫。
• marshmallow:一個羽量級的庫,用於將複雜物件與簡單 Python 資料類型相互轉換。
• pysimdjson:與 Python 綁定的 simdjson 。
• python-rapidjson: RapidJSON 的 Python 封裝。
• ultrajson:使用 Python 綁定的,用 C 編寫的快速 JSON 解碼器和編碼器。
反垃圾技術
説明你和電子垃圾進行戰鬥的庫。
• django-simple-captcha:一個簡單、高度可定制的 Django 應用,可以為任何 Django 表單添加驗證碼。
• django-simple-spam-blocker:一個用於 Django 的簡單的電子垃圾遮罩工具。
標記
用來進行標記的庫。
• django-taggit:簡單的 Django 標記工具。
管理面板
管理介面庫。
• Ajenti:一個你的伺服器值得擁有的管理面板。
• django-suit:Django 管理介面的一個替代品(僅對於非商業用途是免費的)。
• django-xadmin:Django admin 的一個替代品,具有很多不錯的功能。
• flask-admin:一個用於 Flask 的簡單可擴展的管理介面框架。
• flower:一個對 Celery 集群進行即時監控和提供 web 管理介面的工具。
• Grappelli:Django 管理介面的一個漂亮的皮膚。
• Wooey:一個 Django 應用,可以為 Python 腳本創建 web 使用者介面。
• django-grappelli:擁有絢麗外觀的 Django Admin 介面。
• django-jet:具有改進功能的現代回應式 Django 管理介面範本。
• jet-bridge:管理面板框架,適用於任何具有良好 UI 的應用(例如 Django)。
Serverless 框架
使用 Python 開發 Serverless 模型相關的庫。
• python-lambda :在 AWS Lambda 開發和部署 Python 代碼的工具包。
• Zappa:在 AWS Lambda 和 API Gateway 部署 WSGI 應用的工具。
靜態網站生成器
靜態網站生成器是一個軟體,它把文本和範本作為輸入,然後輸出 HTML 檔。
• Pelican:使用 Markdown 或 ReST 來處理內容, Jinja 2 來製作主題。支持 DVCS, Disqus.。AGPL 許可。
• Cactus:為設計師設計的靜態網站生成器。
• Hyde:基於 Jinja2 的靜態網站生成器。
• Nikola:一個靜態網站和博客生成器。
• Tinkerer:Tinkerer 是一個博客引擎/靜態網站生成器,由 Sphinx 驅動。
• Lektor:一個簡單易用的靜態 CMS 和博客引擎。
• makesite:簡單輕量的網站/博客生成器(小於 130 行代碼)。
進程
作業系統進程啟動及通信庫。
• envoy:比 Python subprocess 模組更人性化。
• sarge:另一 種 subprocess 模組的封裝。
• sh:一個完備的 subprocess 替代庫。
• delegator.py:人性化的 Subprocesses 2.0 版本。
併發和並行
用以進行併發和平行作業的庫。
• multiprocessing:(Python 標準庫) 基於進程的“執行緒”介面。
• threading:(Python 標準庫)更高層的執行緒介面。
• eventlet:支援 WSGI 的非同步框架。
• gevent:一個基於協程的 Python 網路庫,使用 greenlet。
• Tomorrow:用於產生非同步代碼的神奇的裝飾器語法實現。
• uvloop:在 libuv 之上超快速實現 asyncio 事件迴圈。
• concurrent.futures:(Python 標準庫) 非同步執行可調用物件的高級介面。
• gevent:使用 greenlet 且基於協程的 Python 網路庫。
• scoop:支持在 Python 中進行可伸縮平行作業。
網路
用於網路程式設計的庫。
• asyncio:(Python 標準庫) 非同步 I/O,事件迴圈,協程以及任務。
• trio:非同步併發和 I/O 友好的庫。
• Twisted:一個事件驅動的網路引擎。
• pulsar:事件驅動的併發框架。
• diesel:基於 Greenlet 的事件 I/O 框架。
• pyzmq:一個 ZeroMQ 消息庫的 Python 封裝。
• Toapi:一個輕巧,簡單,快速的 Flask 庫,致力於為所有網站提供 API 服務。
• txZMQ:基於 Twisted 的 ZeroMQ 消息庫的 Python 封裝。
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,而且可以很方便大嵌入到你的項目中去。
ASGI 伺服器
相容 ASGI 的 web 伺服器。
• daphne:用於 ASGI 和 ASGI-HTTP 的,支持 HTTP,HTTP2 和 WebSocket 協定的伺服器。
• uvicorn:使用 uvloop 和 httptools 實現的閃電般快速的 ASGI 伺服器。
RPC 伺服器
相容 RPC 的伺服器。
• SimpleJSONRPCServer:這個庫是 JSON-RPC 規範的一個實現。
• SimpleXMLRPCServer:(Python 標準庫) 簡單的 XML-RPC 伺服器實現,單執行緒。
• zeroRPC:zerorpc 是一個靈活的 RPC 實現,基於 ZeroMQ 和 MessagePack。
• RPyC (Remote Python Call):適用於 Python 的透明且對稱的RPC庫。
密碼學
• cryptography:這個套裝軟體意在提供密碼學基本內容和方法提供給 Python 開發者。
• hashids:在 Python 中實現 hashids 。
• Paramiko:SSHv2 協定的 Python (2.6+, 3.3+) ,提供用戶端和服務端的功能。
• Passlib:安全密碼存儲/雜湊庫。
• PyCrypto:Python 密碼學工具箱。
• PyNacl:網路和密碼學(NaCl) 庫的 Python 綁定。
圖形化使用者介面
用來創建圖形化使用者介面程式的庫。
• curses:內建的 ncurses 封裝,用來創建終端圖形化使用者介面。
• enaml:使用類似 QML 的 Declaratic 語法來創建美觀的使用者介面。
• kivy:一個用來創建自然使用者交互(NUI)應用程式的庫,可以運行在 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 技術進行介面的展示。
• Eel:用於製作簡單離線 HTML/JS GUI 應用的庫。
• PySimpleGUI:tkinter,Qt,WxPython 和 Remi 的封裝。
• pywebview:圍繞網頁視圖組件的羽量級跨平臺的原生包裝。
• DearPyGui:一個簡單的可使用 GPU 加速的 Python GUI 框架。
遊戲開發
超贊的遊戲開發庫。
• Cocos2d:cocos2d 是一個用來開發 2D 遊戲, 示例和其他圖形/交互應用的框架。基於 pyglet。
• Panda3D:由迪士尼開發的 3D 遊戲引擎,並由卡內基梅隴娛樂技術中心負責維護。使用 C++ 編寫, 針對 Python 進行了完全的封裝。
• Pygame:Pygame 是一組 Python 模組,用來編寫遊戲。
• PyOgre:Ogre 3D 渲染引擎的 Python 綁定,可以用來開發遊戲和模擬程式等任何 3D 應用。
• PyOpenGL:OpenGL 的 Python 綁定及其相關 APIs。
• PySDL2:SDL2 庫的封裝,基於 ctypes。
• RenPy:一個視覺小說(visual novel)引擎。
• Arcade:一個現代 Python 框架,用於製作具有引人入勝的圖形與聲音的遊戲。
• Harfang3D:支援3D,VR 與遊戲開發的 Python 框架。
日誌
用來生成和操作日誌的庫。
• logging:(Python 標準庫) 為 Python 提供日誌功能。
• logbook:Logging 庫的替代品。
• Eliot:為複雜的和分散式系統創建日誌。
• Raven:Sentry 的 Python 用戶端。
• Sentry:即時記錄和收集日誌的伺服器。
• sentry-python:Python 版 Sentry SDK。
• loguru:旨在帶來愉悅體驗的 Python 日誌庫。
• structlog:結構化日誌,讓日誌變得簡單。
測試
進行代碼庫測試和生成測試資料的庫。
• 測試框架
o unittest:(Python 標準庫) 單元測試框架。
o nose:nose 擴展了 unittest 的功能。
o nose2 nose的繼任者,基於 unittest2。
o contexts:一個 Python 3.3+ 的 BDD 框架。受到 C# Machine.Specifications 的啟發。
o hypothesis:Hypothesis 是一個基於先進的 Quickcheck 風格特性的測試庫。
o mamba:Python 的終極測試工具, 擁護 BDD。
o pyshould:Should 風格的斷言,基於 PyHamcrest。
o pytest:一個成熟的全功能 Python 測試工具。
o green:乾淨,多彩的測試工具。
o pyvows:BDD 風格的測試工具,受 Vows.js 的啟發。
o Robot Framework:一個通用的自動化測試框架。
o tox:自動化測試與發佈的工具,支援多個 Python 版本。
• GUI / Web 測試
o Selenium:Selenium WebDriver 的 Python 綁定。
o PyAutoGUI:PyAutoGUI 是一個人性化的跨平臺 GUI 自動測試模組。
o locust:使用 Python 編寫的,可擴展的用戶載入測試工具。
o sixpack:一個和語言無關的 A/B 測試框架。
o splinter:開源的 web 應用測試工具。
o Schemathesis:基於屬性的自動測試工具,用於測試使用 Open API / Swagger 規範構建的 Web 應用程式。
• Mock 測試
o mock:(Python 標準庫) 一個用於偽造測試的庫。
o doublex:Python 的一個功能強大的 doubles 測試框架。
o freezegun:通過偽造日期模組來生成不同的時間。
o httmock:針對 Python 2.6+ 和 3.2+ 生成 偽造請求的庫。
o httpretty:Python 的 HTTP 請求 mock 工具。
o responses:偽造 Python 中的 requests 庫的一個通用庫。
o VCR.py:在你的測試中記錄和重放 HTTP 交互。
o mocket:gevent/asyncio/SSL 支持的 socket mock 框架。
• 物件工廠
o factoryboy:一個 Python 用的測試固件 (test fixtures) 替代庫。
o mixer:另外一個測試固件 (test fixtures) 替代庫,支持 Django, Flask, SQLAlchemy, Peewee 等。
o modelmommy:為 Django 測試創建隨機固件。
• 代碼覆蓋率
o coverage:代碼覆蓋率測量。
o Codecov:一個代碼覆蓋率測試工具,為開源專案提供免費代碼覆蓋率測試服務。
• 偽數據
o faker:一個 Python 庫,用來生成偽資料。
o fake2db:偽資料庫生成器。
o mimesis:一個説明你生成偽資料的 Python 庫。
o radar:生成隨機的日期/時間。
• 錯誤處理
o FuckIt.py:使用最先進的技術來保證你的 Python 代碼無論對錯都能繼續運行。
滲透測試
滲透測試相關框架和工具。
• fsociety:一款滲透測試框架。
• setoolkit:社會工程工具包。
• sqlmap:自動 SQL 注入和資料庫接管工具。
代碼分析和 Lint 工具
進行代碼分析、解析和操作代碼庫的庫和工具。
• 代碼分析
o coala:語言獨立和易於擴展的代碼分析應用程式。
o code2flow:把你的 Python 和 JavaScript 代碼轉換為流程圖。
o pycallgraph:這個庫可以把你的 Python 應用的流程(調用圖)進行視覺化。
o pysonar2:Python 類型推斷和檢索工具。
o prospector:分析 Python 代碼的工具。
o vulture:用於發現和分析無效 Python 代碼的工具。
• Lint 工具
o Flake8:模組化源碼檢查工具,提供與 pycodestyle、pyflakes 、McCabe 相關的裝飾器。
awesome-flake8-extensions
o Pylint:一個完全可定制的源碼分析器。
o YAPF:Google 的 Python 代碼格式化工具。
o pylama:Python 和 JavaScript 的代碼審查工具。
o wemake-python-styleguide:有史以來最嚴格的 Python 代碼審查工具。
• 代碼格式化
o autopep8:自動格式化 Python 代碼,以使其符合 PEP8 規範。
o black:一個堅定的 Python 代碼格式化工具。
o isort:用於糾正包導入順序的 Python 庫。
• 靜態類型檢查,也可以參考 awesome-python-typing
o mypy:在編譯期間檢查變數類型。
o pyre-check:性能類型檢查。
o typeshed:帶有靜態類型的Python庫存根的集合。
• 靜態類型注釋生成器
o MonkeyType:通過收集運行時的類型來為 Python 生成靜態類型注釋的系統。
o pyannotate:自動生成符合 PEP-484 的注解。
o pytype:檢查和推斷 Python 代碼中的類型,無需添加注解。
調試工具
用來進行代碼調試的庫。
• 調試器
o ipdb:IPython 啟用的 pdb。
o pudb:全屏,基於控制台的 Python 調試器。
o pdb++:另一種 pdb 的替代。
o pyringe:可以在 Python 進程中附加和注入代碼的調試器。
o wdb:一個奇異的 web 調試器,通過 WebSockets 工作。
o winpdb:一個具有圖形化使用者介面的 Python 調試器,可以進行遠端調試,基於 rpdb2。
• 追蹤器
o lptrace:為 Python 程式打造的 strace。
o manhole:調試UNIX通訊端連接,並顯示所有執行緒的堆疊跟蹤和互動式提示。
o pyringe:能夠附加到 Python 進程並將代碼注入Python進程的調試器。
o python-hunter:一個靈活的代碼追蹤工具包。
• 性能分析器
o lineprofiler:逐行性能分析。
o Memory Profiler、記憶體:監控 Python 代碼的記憶體使用。
o profiling:一個互動式 Python 性能分析工具。
o py-spy:Python 程式採樣分析器,使用 Rust 實現。
o pyflame:用於 Python 的跟蹤分析器。
o vprof:視覺 Python 分析器。
• 其他
o pyelftools:解析和分析 ELF 檔以及 DWARF 調試資訊。
o python-statsd:statsd 伺服器的 Python 用戶端。
o django-debug-toolbar:為 Django 顯示各種調試資訊。
o django-devserver:一個 Django 運行伺服器的替代品。
o flask-debugtoolbar:django-debug-toolbar 的 flask 版。
o icecream:通過一個簡單的函式呼叫檢查變數、運算式和程式執行情況。
科學計算和資料分析
用來進行科學計算和資料分析的庫。
• astropy:一個天文學 Python 庫。
• bcbio-nextgen:這個工具箱為全自動高通量測序分析提供符合最佳實踐的處理流程。
• bccb:生物分析相關代碼集合。
• Biopython:Biopython 是一組可以免費使用的用來進行生物計算的工具。
• blaze:NumPy 和 Pandas 的大資料介面。
• cclib:一個用來解析和解釋計算化學套裝軟體輸出結果的庫。
• NetworkX:一個為複雜網路設計的高性能軟體。
• Neupy:執行和測試各種不同的人工神經網路演算法。
• NumPy:使用 Python 進行科學計算的基礎包。
• Open Babel:一個化學工具箱,用來描述多種化學資料。
• Open Mining:使用 Python 挖掘商業情報 (BI) (Pandas web 介面)。
• orange:通過視覺化程式設計或 Python 腳本進行資料採擷,資料視覺化,分析和機器學習。
• Pandas:提供高性能,易用的資料結構和資料分析工具。
• PyDy:PyDy 是 Python Dynamics 的縮寫,用來為動力學運動建模工作流程提供説明, 基於 NumPy, SciPy, IPython 和 matplotlib。
• PyMC:瑪律科夫鏈蒙特卡洛採樣工具。
• RDKit:化學資訊學和機器學習軟體。
• SciPy:由一些基於 Python ,用於數學,科學和工程的開源軟體構成的生態系統。
• statsmodels:統計建模和計量經濟學。
• SymPy:一個用於符號數學的 Python 庫。
• zipline:一個 Python 演算法交易庫。
• Bayesian-belief-networks:優雅的貝葉斯理念網路框架。
• AWS Data Wrangler:AWS 平臺上使用的 Pandas。
• Optimus:在使用 PySpark 時,讓敏捷資料科學工作流程變得簡單。
• Colour:大量色彩理論轉換和演算法的實現。
• Karate Club:用於圖形結構化資料的無監督機器學習工具箱。
• NIPY:神經影響學工具箱集合。
• ObsPy:地震學 Python 工具箱。
• QuTiP:Python 版 Quantum 工具箱。
• SimPy:一個基於過程的離散事件模擬框架。
數據視覺化
進行資料視覺化的庫。 參見:awesome-javascript。
• 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 的高性能科學視覺化工具。
• Altair:用於 Python 的聲明式統計視覺化庫。
• bqplot:Jupyter Notebook 的互動式繪圖庫。
• Cartopy:具有 matplotlib 支援的 Python 製圖庫。
• Dash:構建在 Flask、React 和 Plotly 之上,旨在用於分析 Web 應用程式。
o awesome-dash
• diagrams:用圖表作為代碼。
• plotnine:基於ggplot2的Python圖形語法。
• PyGraphviz: Graphviz 的 Python 介面。
• Seaborn:使用 Matplotlib 進行統計資料視覺化。
電腦視覺
電腦視覺相關庫。
• OpenCV:開源電腦視覺庫。
• pyocr:Tesseract 和 Cuneiform 的包裝庫。
• pytesseract:Google Tesseract OCR 的另一包裝庫。
• SimpleCV:一個用來創建電腦視覺應用的開源框架。
• EasyOCR:支援40多種語言的即用型 OCR。
• Face Recognition:簡單的面部識別庫。
• Kornia:PyTorch 的開源差異化電腦視覺庫。
• tesserocr:另一個簡單的,相容 Pillow 的 tesseract-ocr API 裝飾器,可用於 OCR。
深度學習
神經網路和深度學習相關框架。 也可以參考 awesome-deep-learning。
• Caffe:一個 Caffe 的 python 介面。
• Caffe2:一個羽量級的,模組化的,可擴展的深度學習框架。
• keras:以 tensorflow/theano/CNTK 為後端的深度學習封裝庫,快速上手神經網路。
• MXNet:一個高效和靈活的深度學習框架。
• Pytorch:一個具有張量和動態神經網路,並有強大 GPU 加速能力的深度學習框架。
• SerpentAI:遊戲代理框架,可使用任意視頻遊戲作為深度學習沙箱。
• Theano:一個快速數值計算庫。
• TensorFlow:穀歌開源的最受歡迎的深度學習框架。
• skflow:一個 TensorFlow 的簡化介面(模仿 scikit-learn)。
• hebel:GPU 加速的深度學習庫。
• pydeep:Python 深度學習庫。
機器學習
機器學習相關庫,也可以參考 awesome-machine-learning。
• Crab:靈活、快速的推薦引擎。
• NuPIC:智慧計算 Numenta 平臺。
• pattern:Python 網路挖掘模組。
• PyBrain:另一個 Python 機器學習庫。
• Pylearn2:一個基於 Theano 的機器學習庫。
• python-recsys:一個用來實現推薦系統的 Python 庫。
• scikit-learn:基於 SciPy 構建的機器學習 Python 模組。
• vowpalporpoise:羽量級 Vowpal Wabbit 的 Python 封裝。
• gym:開發和比較強化學習演算法的工具包。
• H2O:開源快速可擴展的機器學習平臺。
• Metrics:機器學習的評估指標。
• vowpal_porpoise:Python 版 Vowpal Wabbit 裝飾器。
• xgboost:可擴展,可擕式和分散式梯度提升庫。
• MindsDB:MindsDB 是現有資料庫的開源 AI 層,可讓使用標準查詢輕鬆地進行開發,訓練和部署最新的機器學習模型。
推薦系統
用於構建推薦系統的相關庫。
• annoy:對 C++/Python 實現的近似近鄰演算法進行了記憶體優化。
• fastFM:Factorization Machine 相關庫。
• implicit:對隱式資料集進行協作過濾的快速 Python 實現。
• libffm:Field-aware Factorization Machine (FFM) 相關庫。
• lightfm:很多流行的推薦演算法的 Python 實現。
• spotlight:使用 PyTorch 實現的深度推薦模型。
• Surprise:用於構建和分析推薦系統的科學工具。
• tensorrec:TensorFlow 的推薦引擎框架。
分散式運算
分散式運算相關的框架和庫。
• dpark:Spark 的 Python 克隆版,一個類似 MapReduce 的框架。
• dumbo:這個 Python 模組可以讓人輕鬆的編寫和運行 Hadoop 程式。
• luigi:這個模組幫你構建批次處理作業的複雜流水線。
• mrjob:在 Hadoop 或 Amazon Web Services 上運行 MapReduce 任務。
• dask:用於分析計算的靈活的平行計算庫。
• PySpark:Spark 的 Python API 。
• Ray:一個用於並行和分散式 Python 的系統,它統一了機器學習生態系統。
• faust:一個 Python 流處理庫,核心思想來源 Kafka Streams。
• streamparse:運行針對事實資料流程的 Python 代碼。集成了 Apache Storm。
• mars:是基於張量的,用於進行大規模資料計算的統一計算框架。
函數式程式設計
使用 Python 進行函數式程式設計。
• CyToolz:Toolz 的 Cython 實現:高性能函數式工具。
• fn.py:在 Python 中進行函數式程式設計:實現了一些享受函數式程式設計缺失的功能。
• funcy:炫酷又實用的函數式工具。
• Toolz:一組用於反覆運算器,函數和字典的函數式程式設計工具。
• Coconut:為了簡單、優雅、更 Pythonic 的函數式程式設計而構建的 Python 變體。
• more-itertools:比 itertools 擁有更多的可反覆運算物件的操作方式。
• returns:一個類型安全的單元、轉換器與合成工具集合。
協力廠商 API
用來訪問協力廠商 API 的庫。 參見: List of Python API Wrappers and Libraries。
• apache-libcloud:一個為各種雲設計的 Python 庫。
• boto3:Amazon Web Services 的 Python 介面。
• django-wordpress:Django 的 WordPress 模型與視圖。
• 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 的封裝。
DevOps 工具
用於 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:在一個偽終端中控制交互程式,就像 GNU expect 一樣。
• psutil:一個跨平臺進程和系統工具模組。
• supervisor:UNIX 的進程控制系統。
• cloudinit:一個多分發包,用於處理雲實例的早期初始化。
• pyinfra:一個通用的 CLI 工具包和 python 庫,用於自動化的基礎設施。
• honcho:Foreman 的 Python 克隆版,用於管理基於 Procfile 的應用。
• BorgBackup:具有壓縮和加密功能的重復資料刪除存檔器。
• docker-compose: 使用 Docker 的快速獨立的開發環境。
任務調度
任務調度庫。
• APScheduler:輕巧但強大的進程內任務調度,使你可以調度函數。
• django-schedule:一個 Django 排程應用。
• doit:一個任務執行和構建工具。
• gunnery:分散式系統使用的多用途任務執行工具 ,具有 web 交互介面。
• Joblib:一組為 Python 提供羽量級作業流水線的工具。
• Plan:如有神助地編寫 crontab 檔。
• schedule:人性化的 Python 任務調度庫。
• Spiff:使用純 Python 實現的強大的工作流引擎。
• TaskFlow:一個可以讓你方便執行任務的 Python 庫,一致並且可靠。
• Airflow :是一個工作流分配管理系統,通過有向非循環圖表的方式管理任務流程,設置任務依賴關係和時間調度。
• Prefect:一個現代的工作流程編排框架,使構建、計畫和監視健壯的資料管道變得容易。
外來函數介面
使用外來函數介面的庫。
• cffi:用來調用 C 代碼的外來函數介面。
• ctypes:(Python 標準庫) 用來調用 C 代碼的外來函數介面。
• PyCUDA:Nvidia CUDA API 的封裝。
• SWIG:簡化的封裝和介面生成器。
重構
Python 重構相關庫和工具。
• Bicycle Repair Man:Python 的重構工具。
• Bowler:適用于現代Python的安全代碼重構。
• Rope:一個 Python 的重構庫。
高性能
讓 Python 更快的庫。
• Cython:優化的 Python 靜態編譯器。使用類型混合使 Python 編譯成 C 或 C++ 模組來獲得性能的極大提升。
• CLPython:用 Common Lisp 編寫的 Python 程式設計語言的實現。
• Grumpy:編譯器比解譯器更強大的 cpython2.7 替代品(alpha)。
• IronPython:用 C# 編寫的 Python 程式設計語言的實現。
• Jython:為 JVM 用 Java 編寫的 Python 程式設計語言的實現。
• MicroPython:精簡高效的 Python 程式設計語言實現。
• Pyjion:基於 CoreCLR 的 Python JIT。
• Numba:Python JIT (just in time) 編譯器,針對科學用的 Python ,由 Cython 和 NumPy 的開發者開發。
• PeachPy:嵌入 Python 的 x86-64 彙編器。可以被用作 Python 內聯的彙編器或者是獨立的彙編器,用於 Windows,Linux,OS X,Native Client 或者 Go 。
• PyPy:使用 Python 實現的 Python。解譯器使用黑魔法加快 Python 運行速度且不需要加入額外的類型資訊。
• Pyston:使用 LLVM 和現代 JIT 技術構建的 Python 實現,目標是為了獲得很好的性能。
• Stackless Python:一個強化版的 Python。
微軟的 Windows 平臺
在 Windows 平臺上進行 Python 程式設計。
• Python(x,y):面向科學應用的 Python 發行版本,基於 Qt 和 Spyder。
• pythonlibs:非官方的 Windows 平臺 Python 擴展二進位包。
• PythonNet:Python 與 .NET 公共語言運行庫 (CLR)的集成。
• PyWin32:針對 Windows 的 Python 擴展。
• WinPython:Windows 7/8 系統下可擕式開發環境。
網路視覺化和 SDN
用來進行網路視覺化和 SDN(軟體定義網路)的工具和庫。
• Mininet:一款流行的網路模擬器以及用 Python 編寫的 API。
• POX:一個針對基於 Python 的軟體定義網路應用(例如 OpenFlow SDN 控制器)的開源開發平臺。
• Pyretic:火熱的 SDN 程式設計語言中的一員,為網路交換機和模擬器提供強大的抽象能力。
• SDX Platform:基於 SDN 的 IXP 實現,影響了 Mininet, POX 和 Pyretic。
• NRU:一個基於元件的軟體定義網路框架。
• napalm:可跨供應商 API 來操縱網路設備。
硬體
用來對硬體進行程式設計的庫。
• ino:操作 Arduino 的命令列工具。
• Pyro:Python 機器人程式設計庫。
• PyUserInput:跨平臺的,控制滑鼠和鍵盤的模組。
• scapy:一個非常棒的運算元據包的庫。
• wifi:一個 Python 庫和命令列工具用來在 Linux 平臺上操作 WiFi。
• Pingo:Pingo 為類似 Raspberry Pi,pcDuino, Intel Galileo 等設備提供統一的 API 用以程式設計。
• keyboard:在 Windows 和 Linux 上掛鉤並類比全域鍵盤事件。
• mouse:在 Windows 和 Linux 上掛鉤並類比全域滑鼠事件。
相容性
幫助從 Python 2 向 Python 3 遷移的庫。
• Python-Future:這就是 Python 2 和 Python 3 之間丟失的那個相容性層。
• Six:Python 2 和 3 的相容性工具。
• modernize:使 Python 代碼更加現代化以便最終遷移到 Python 3。
演算法和設計模式
資料結構、演算法和設計模式的 Python 實現。也可以參考 awesome-algorithms 。
• 演算法
o algorithms:資料結構和演算法的簡單示例。
o python-ds:用於面試的資料結構和演算法的集合。
o sortedcontainers:排序集合的快速的純 Python 實現。
o TheAlgorithms:所有演算法的 Python 實現。
• 設計模式
o PyPattyrn:一個簡單而有效的庫,用於實現常見的設計模式。
o python-patterns:一個 Python 設計模式集合。
o transitions:羽量級的,物件導向的有限狀態機實現。
內置類的增強版實現
一些 Python 內置類的增強版實現庫。
• attrs:一個在類定義時可替換 __init__, __eq__, __repr__等方法的樣板。
• bidict:高效的 Pythonic 的雙向映射資料結構和相關功能。
• Box:具有高級點符號存取權限的 Python 字典。
• dataclasses:(Python 標準庫) 資料類。
• DottedDict:提供一種使用點路徑符號訪問清單和字典的方法的庫。
機器人
機器人相關庫。
• PythonRobotics:各種具有視覺化效果的機器人演算法的匯總。
• rospy:ROS (Robot Operating System) 庫。
聊天工具
聊天機器人開發相關的庫。
• errbot:實現 ChatOps 的最簡單最受歡迎的聊天機器人。
編輯器外掛程式和 IDE
• Emacs
o elpy:Emacs Python 開發環境。
• Sublime Text
o anaconda:Anaconda 可將功能齊全的 Python 開發 IDE 轉換為 Sublime Text 3。
o SublimeJEDI:一個很棒的自動補全庫 Jedi 的Sublime Text 外掛程式。
• Vim
o jedi-vim:用於 Python 的 Jedi 自動補全庫的 Vim 綁定。
o python-mode:一個將 Vim 轉換為 Python IDE 的多合一外掛程式。
o YouCompleteMe:包含 Jedi 補全的 Python 引擎。
• Visual Studio
o PTVS:Visual Studio Python 工具。
• Visual Studio Code
o Python:對 Python 有豐富支持的官方 VSCode 擴展。
• IDE
o PyCharm:JetBrains 提供的商業 Python IDE,也有免費的社區版。
o spyder: 開源 Python IDE。
企業級應用集成
企業級環境中用於集成的平臺與工具。
• Zato:ESB, SOA, REST, APIs 以及雲的 Python 整合。
GraphQL
GraphQL 相關庫。
• graphene:Python GraphQL 框架。
• tartiflette-aiohttp:Tartiflette 的基於 aiohttp 的裝飾器,用於通過 HTTP 公開 GraphQL API。
• tartiflette-asgi:Tartiflette GraphQL 引擎的 ASGI 支援。
• tartiflette:支持 Python 3.6+ 和 asyncio 的 SDL 優先的 GraphQL 引擎實現。
股票金融
• QUANTAXIS:支援任務調度,分散式部署的股票/期貨/期權/港股/虛擬貨幣的資料/回測/類比/交易/視覺化/多帳戶純本地量化解決方案
• abu: 基於python的開源量化交易,量化投資架構
• Hikyuu Quant:基於C++/Python的開源量化交易研究框架,用於策略分析及回測(僅受限於資料,如有資料也可用於期貨等)
• vnpy:基於Python的開源量化交易系統開發框架,整合了多種交易介面,並針對具體策略演算法和功能開發提供了簡潔易用的API,用於快速構建交易員所需的量化交易應用
雜項
不屬於上面任何一個類別,但是非常有用的庫。
• blinker:快速的 Python 運行時信號/事件分配系統。
• boltons:一組純 Python 實用工具。
• itsdangerous:將受信任的資料傳遞到不受信任的環境的幫助工具。
• magenta:使用人工智慧生成音樂與藝術的工具。
• pluginbase:一個簡單但靈活的 Python 外掛程式系統。
• tryton:一個通用業務框架。
訂閱:
張貼留言 (Atom)
-
Python 教學 Python 教學共有 190 多篇 Python 教學,包含基本語法、函式庫、網路爬蟲和一系列由淺入深的精選範例,不僅能對 Python 有充分的認識,還能透過 Python 做出各種有趣的應用! 點選 左側選單 可以查看所有文章 ( 行動裝置可點選 ...
沒有留言:
張貼留言