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、Youn Cao、River、Youn Cao、River、Youn Cao、River、Youn Cao、River、Youn Cao
註:名單不分排名,不定期補充更新
資源列表
環境管理
管理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 的豐富工具包。
文件
文件管理和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。
文字處理
用於解析和操作文字的函式庫。
- 一般
- chardet:字元編碼偵測器,相容於Python 2 和Python 3。
- difflib:(Python 標準函式庫)幫助我們進行差異化比較。
- ftfy:讓Unicode 文字更完整更連貫。
- thefuzz:模糊字串匹配。
- Levenshtein:快速計算編輯距離以及字串的相似度。
- pangu.py:在中日韓語字元和數字字母之間加入空格。
- pypinyin:漢字拼音轉換工具Python 版。
- shortuuid:一個生成器庫,用以產生簡潔的,明白的,URL 安全的UUID。
- simplejson:Python 的JSON 編碼、解碼器。
- unidecode:Unicode 文字的ASCII 轉換形式。
- uniout:列印可讀的字符,而不是轉義的字串。
- xpinyin:一個用來把漢字轉換為拼音的函式庫。
- pyfiglet:figlet 的Python 實作。
- flashtext:一個高效率的文字尋找取代庫。
- textdistance:支援30 多種演算法來計算序列之間的距離。
- Slug 化
- awesome-slugify:一個Python slug 化庫,可以保持Unicode。
- python-slugify:Python slug 化函式庫,可以把unicode 轉換成ASCII。
- unicode-slugify:一個slug 工具,可以產生unicode slugs ,需要依賴Django 。
- 解析器
- phonenumbers:解析,格式化,儲存,驗證電話號碼。
- python-phonenumbers:解析,格式化,存儲,校驗國際電話號碼。
- PLY:lex 和yacc 解析工具的Python 實作。
- Pygments:通用語法高亮工具。
- pyparsing:產生通用解析器的框架。
- python-nameparser:把一個人名分解為幾個獨立的部分。
- python-user-agents:瀏覽器user agent 解析器。
- sqlparse:一個無驗證的SQL 解析器。
特殊文字格式處理
一些用來解析和操作特殊文字格式的函式庫。
- 一般
- Office
- Marmir:把輸入的Python 資料結構轉換為電子表單。
- openpyxl:一個用來讀寫Excel 2010 xlsx/xlsm/xltx/xltm 檔案的函式庫。
- pyexcel:一個提供統一API,用來讀寫,操作Excel 檔案的函式庫。
- python-docx:讀取,查詢以及修改Microsoft Word 2007/2008 docx 檔案。
- python-pptx:可用於建立和修改ppt 檔案的Python 庫。
- relatorio:模板化OpenDocument 文件。
- unoconv:在LibreOffice/OpenOffice 支援的任意檔案格式之間進行轉換。
- XlsxWriter:一個用於建立Excel .xlsx 檔案的Python 模組。
- xlwings:一個使得在Excel 中方便呼叫Python 的函式庫(反之亦然),基於BSD 協定。
- xlwt / xlrd:讀取寫Excel 檔案的資料和格式資訊。
- docxtpl:透過jinja2 模版編輯docx 文件。
- 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
- Archive
自然語言處理
用來處理人類語言的函式庫。
- 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 文檔產生器。
- MkDocs:對Markdown 友善的文件產生器。
- pdoc:可以取代Epydoc 的函式庫,可以自動產生Python 函式庫的API 文件。
- Pycco:文學程式設計(literate-programming)風格的文件產生器。
- readthedocs:基於Sphinx/MkDocs 的線上文件託管系統,對開源專案免費開放使用。
配置
用來保存和解析配置的函式庫。
- config:logging 模組作者寫的分級配置模組。
- ConfigObj:INI 檔案解析器,附驗證功能。
- ConfigParser:(Python 標準庫) INI 檔案解析器。
- profig:透過多種格式進行配置,具有數值轉換功能。
- python-decouple:將設定和程式碼完全隔離。
- hydra:一個優雅地配置複雜應用程式的框架。
命令列工具
用於建立命令列程式的庫。
- 命令列程式開發
- cement:Python 的命令列程式框架。
- click:一個透過組合的方式來創建精美命令列介面的套件。
- cliff:一個用於建立命令列程式的框架,可以建立具有多層命令的命令列程式。
- clint:Python 命令列程式工具。
- docopt:Python 風格的命令列參數解析器。
- Gooey:一條指令,將命令列程式變成一個GUI 程式。
- python-prompt-toolkit:一個用於建立強大的互動式命令列程式的函式庫。
- python-fire:Google 出品的一個基於Python 類別的建置命令列介面的函式庫。
- Pythonpy:在命令列中直接執行任何Python 指令。
- 終端呈現方式
- asciimatics:跨平台,全螢幕終端包(即滑鼠/鍵盤輸入和彩色,定位文字輸出),完整的複雜動畫和特殊效果的高級API。
- alive-progress:一款新的進度條,具有即時吞吐量資訊以及非常酷的動畫。
- colorama:跨平台彩色終端文字。
- bashplotlib:在終端機中進行基本繪圖。
- rich:一個在終端機中支援富文本和格式美化的Python 函式庫, 同時提供了
RichHandler
日誌處理程序。 - tqdm:一個可在循環和命令列中使用的快速、可擴展的進度條。
- 生產力工具
- aws-cli:Amazon Web Services 的通用命令列介面。
- caniusepython3:判斷是哪個項目妨礙你你移植到Python 3。
- cookiecutter:從cookiecutters(專案範本)建立專案的命令列工具。
- doitlive:用來在終端機中進行現場示範的工具。
- pyftpdlib:一個速度極快且可擴展的Python FTP 服務函式庫。
- howdoi:透過命令列取得即時的程式設計問題解答。
- PathPicker:從bash 輸出中選出檔案。
- percol:在UNIX shell 傳統管道概念中加入互動式選擇功能。
- thefuck:修正你之前的命令列指令。
- try:一個極為簡單的命令列工具,用來試用python 函式庫。
- copier:用於呈現專案範本的函式庫和命令列公用程式。
- Invoke:用於管理面向shell 的子進程,同時支援將可執行的Python 程式碼組織成命令列可呼叫的狀態。
- tmuxp: tmux 會話管理器。
- 高級CLI
- httpie:一個命令列HTTP 用戶端,cURL 的替代品,易用性更好。
- iredis:支援自動補全和高亮顯示的redis 命令列工具。
- kube-shell:K8S 命令列整合的shell 工具。
- litecli:支援自動補全和語法高亮的SQLite 命令列工具。
- mycli:支援自動補全和語法高亮的MySQL 命令列客戶端
- pgcli:支援自動補全和語法高亮的Postgres 命令列工具。
- SAWS:一個加強版的AWS 命令列。
- Shell
- 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 系列
- 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 用戶端。
- kafka-python:Apache Kafka Python 用戶端。
- 非同步客戶端
- motor:支援MongoDB 的非同步Python 驅動程式。
ORM
實現對象關係映射或資料映射技術的庫。
- 關係型資料庫
- Django Models:Django 的一部分。
- SQLAlchemy:Python SQL 工具以及物件關聯映射工具。
- awesome-sqlalchemy 系列
- Peewee:一個小巧,富有表現力的ORM。
- PonyORM:提供面向生成器的SQL 介面的ORM。
- python-sql:寫Python 風格的SQL 查詢。
- dataset:在資料庫中儲存字典,支援SQLite,MySQL 和PostgreSQL。
- orator:Orator ORM,提供了一個簡單而美觀的ActiveRecord 實作。
- orm:一個異步的ORM。
- pony:提供面向產生器的SQL介面的ORM。
- pydal:純Python 資料庫抽象介面層。
- NoSQL 資料庫
- 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。
Web 框架
全端Web 框架。
- Django:Python 界最受歡迎的web 框架。
- awesome-django(by shahraizali) 系列
- awesome-django(by wsvincent) 系列
- 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+ 的非同步網路框架。
- 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
- 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。
- apistar:專為Python 3設計的智慧Web API 框架。
- fastapi:一個現代,快速,基於標準Python 類型註解的的web框架,可使用Python3.6+ 版本建立API。
- hug:為純淨公開的API 打造的Python 3 框架。
- sandman2:為資料庫驅動的系統自動產生REST API。
- vibora:快速且有效率且支援非同步的Web 框架,靈感來自Flask。
驗證
實作驗證方案的函式庫。
- OAuth
- authlib:一個強大的Python函式庫,用來建置OAuth 和OpenID 服務端。包括:JWS, JWK, JWA, JWT。
- Authomatic:簡單但是強大的框架,身份驗證/授權客戶端。
- django-allauth:Django 的驗證應用。
- django-oauth-toolkit:為Django 用戶準備的OAuth2。
- django-oauth2-provider:為Django 應用提供OAuth2 接入。
- Flask-OAuthlib:OAuth 1.0/a, 2.0 用戶端實現,供Flask 使用。
- OAuthLib:一個OAuth 請求-簽章邏輯通用、 完整的實作。
- python-oauth2:一個完全測試的抽象介面。用來建立OAuth 客戶端和服務端。
- python-social-auth:設定簡單的社會化驗證方式。
- rauth:OAuth 1.0/a, 2.0, 和Ofly 的Python 函式庫。
- sanction:一個超級簡單的OAuth2 客戶端實作。
- 其他
- PyJWT:JSON Web 令牌草案01。
- python-jws:JSON Web 簽章草案02 的實作。
- python-jwt:一個用來產生和驗證JSON Web 令牌的模組。
- 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:一個讓處理網站更簡單小型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:結構化日誌,讓日誌變得簡單。
測試
進行程式碼庫測試和產生測試資料的庫。
- 測試框架
- unittest:(Python 標準函式庫) 單元測試框架。
- nose:nose 擴充了unittest 的功能。
- nose2
nose
的繼任者,基於unittest2
。 - contexts:一個Python 3.3+ 的BDD 框架。受到C# Machine.Specifications 的啟發。
- hypothesis:Hypothesis 是一個基於先進的Quickcheck 風格特性的測試庫。
- mamba:Python 的終極測試工具, 擁護BDD。
- pyshould:Should 風格的斷言,基於PyHamcrest。
- pytest:一個成熟的全功能Python 測試工具。
- green:乾淨,多彩的測試工具。
- pyvows:BDD 風格的測試工具,受Vows.js 的啟發。
- Robot Framework:一個通用的自動化測試框架。
- tox:自動化測試與發布的工具,支援多個Python 版本。
- GUI / Web 測試
- Selenium:Selenium WebDriver 的Python 綁定。
- PyAutoGUI:PyAutoGUI 是一個人性化的跨平台GUI 自動測試模組。
- locust:使用Python 編寫的,可擴展的使用者載入測試工具。
- sixpack:一個和語言無關的A/B 測試框架。
- splinter:開源的web 應用測試工具。
- Schemathesis:基於屬性的自動測試工具,用於測試使用Open API / Swagger 規範建構的Web 應用程式。
- Mock 測試
- mock:(Python 標準函式庫) 一個用於偽造測試的函式庫。
- doublex:Python 的一個功能強大的doubles 測試框架。
- freezegun:透過偽造日期模組來產生不同的時間。
- httmock:針對Python 2.6+ 和3.2+ 產生偽造請求的函式庫。
- httpretty:Python 的HTTP 請求mock 工具。
- responses:偽造Python 中的requests 函式庫的一個通用函式庫。
- VCR.py:在你的測試中記錄和重播HTTP 互動。
- mocket:gevent/asyncio/SSL 支援的socket mock 框架。
- 對象工廠
- factoryboy:一個Python 用的測試韌體(test fixtures) 替代函式庫。
- mixer:另外一個測試韌體(test fixtures) 替代函式庫,支援Django, Flask, SQLAlchemy, Peewee 等。
- modelmommy:為Django 測試建立隨機韌體。
- 程式碼覆蓋率
- coverage:程式碼覆蓋率測量。
- Codecov:一個程式碼覆蓋率測試工具,為開源專案提供免費程式碼覆蓋率測試服務。
- 虛擬數據
- faker:一個Python 函式庫,用來產生偽資料。
- fake2db:偽資料庫產生器。
- mimesis:一個幫助你產生偽數據的Python 函式庫。
- radar:產生隨機的日期/時間。
- 錯誤處理
- FuckIt.py:使用最先進的技術來確保你的Python 程式碼無論對錯都能繼續運作。
滲透測試
滲透測試相關框架和工具。
- fsociety:一款滲透測試框架。
- setoolkit:社會工程工具包。
- sqlmap:自動SQL 注入與資料庫接管工具。
程式碼分析與Lint 工具
進行程式碼分析、解析和操作程式碼庫的函式庫和工具。
偵錯工具
用來進行程式碼調試的函式庫。
偵錯工具
- ipdb:IPython 啟用的pdb。
- pudb:全屏,基於控制台的Python 調試器。
- pdb++:另一種pdb 的替代。
- pyringe:可以在Python 進程中附加和注入程式碼的偵錯器。
- wdb:一個奇怪的web 偵錯器,透過WebSockets 運作。
- winpdb:一個具有圖形使用者介面的Python 偵錯器,可以進行遠端偵錯,基於rpdb2。
追蹤器
- lptrace:為Python 程式打造的strace。
- manhole:調試UNIX套接字連接,並顯示所有執行緒的堆疊追蹤和互動式提示。
- pyringe:能夠附加到Python 進程並將程式碼注入Python進程的偵錯器。
- python-hunter:一個靈活的程式碼追蹤工具包。
性能分析器
- lineprofiler:逐行效能分析。
- Memory Profiler、記憶體:監控Python 程式碼的記憶體使用。
- profiling:一個互動式Python 效能分析工具。
- py-spy:Python 程式採樣分析器,使用Rust 實作。
- pyflame:用於Python 的追蹤分析器。
- vprof:視覺Python 分析器。
其他
- pyelftools:解析和分析ELF 檔案以及DWARF 偵錯資訊。
- python-statsd:statsd 伺服器的Python 用戶端。
- django-debug-toolbar:為Django 顯示各種偵錯資訊。
- django-devserver:一個Django 運行伺服器的替代品。
- flask-debugtoolbar:django-debug-toolbar 的flask 版。
- 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 應用程式。
- 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:Google開源的最受歡迎的深度學習框架。
- 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 。
- 演算法
- algorithms:資料結構和演算法的簡單範例。
- python-ds:用於面試的資料結構和演算法的集合。
- sortedcontainers:排序集合的快速的純Python 實作。
- TheAlgorithms:所有演算法的Python 實作。
- 設計模式
- PyPattyrn:一個簡單而有效的函式庫,用於實現常見的設計模式。
- python-patterns:Python 設計模式集合。
- transitions:輕量級的,物件導向的有限狀態機實作。
內建類別的增強版實現
一些Python 內建類別的增強版實作庫。
- attrs:一個在類別定義時可取代
__init__
, __eq__
, __repr__
等方法的樣板。 - bidict:高效的Pythonic 的雙向映射資料結構和相關功能。
- Box:具有高級點符號存取權限的Python 字典。
- dataclasses:(Python 標準庫) 資料類。
- DottedDict:提供一種使用點路徑符號存取清單和字典的方法的函式庫。
機器人
機器人相關庫。
- PythonRobotics:各種具有視覺化效果的機器人演算法的總結。
- rospy:ROS (Robot Operating System) 函式庫。
聊天工具
聊天機器人開發相關的函式庫。
- errbot:實現ChatOps 的最簡單最受歡迎的聊天機器人。
編輯器插件和IDE
- Emacs
- Sublime Text
- anaconda:Anaconda 可將功能齊全的Python 開發IDE 轉換為Sublime Text 3。
- SublimeJEDI:一個很棒的自動補全庫Jedi 的Sublime Text 插件。
- Vim
- jedi-vim:Python 的Jedi 自動補全庫的Vim 綁定。
- python-mode:一個將Vim 轉換為Python IDE 的多合一插件。
- YouCompleteMe:包含Jedi 補全的Python 引擎。
- Visual Studio
- PTVS:Visual Studio Python 工具。
- Visual Studio Code
- Python:對Python 有豐富支援的官方VSCode 擴充。
- IDE
- PyCharm:JetBrains 提供的商業Python IDE,也有免費的社群版。
- 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:一個通用業務架構。