Python 模塊收集
轉自:http://kuanghy.github.io/2017/04/04/python-modules html
Python | Apr 4, 2017 | pythonhtml5
工具
- attrs Attributes Without Boilerplate
- assertpy assert 語句的替代品
- affirm 用於更好的替換 assert 語句
- decorator 簡化 decorator 的使用難度而開發的模塊
- isort 可自動對 Python 的 import 語句進行排序和分段。可將大量的 import 結構轉成很是適合閱讀的排版
日誌處理
- logging 標準庫日誌系統
- logbook 一個功能完備強大的日誌庫
- Structlog 是一個先進的日誌處理器。他能夠和任何現存的日誌記錄工具相集成,幷包裝了 Python 標準庫。你能夠構建定製的記錄工具,根據你的須要增長上下文,保證你的日誌一致、可讀
系統工具
郵件
數據庫
打印輸出
並行計算、分佈式、任務調度
命令行參數解析
- Docopt 忘了 optparse 和 argparse 吧,使用 docstring 來構建優雅的、高可讀性、複雜(若是你有這個須要)的命令行界面。在我看來這是2013年誕生的最好的庫
- Click 用於快速建立命令行工具
- clize 利用裝飾器將函數轉換成命令行解析器
- python-fire Google 開源的一個可從任何 Python 代碼自動生成命令行接口(CLI)的庫,是開發和調試很是有用的工具,只需將想要在命令行顯示的功能寫爲函數/模塊/類,就能夠在命令行模式下調用
HTTP
HTML/XML
Web 框架
- Bottle 是一個快速、簡單、輕量的WSGI微型web框架。利用Bottle構建小型站點和API的時間以秒計算。這個框架只有一個py文件,你能夠把它放進任何目錄
- Django 以快速開發和結構整潔著稱的高層框架。這個開源免費的框架徹底由 Python 編寫而且遵循 MVC 的模型
- CherryPy 是HTTP協議的一個封裝,這樣其餘軟件可使用它來處理HTTP協議的細節。它是一個低層的框架,它只提供 RFC 2616 定義的功能。接口很是 Pythonic,讓 Python 開發者不會感到突兀
- Flask 基於 WerkzeugWSGI 工具箱和 jinja 模板,適合開發輕量級的 Web 應用,有不少第三方擴展
- Pyramid 包含了一些 Python/Perl/Ruby 獨有的特性,擁有不依賴平臺的 MVC 架構,和最快的啓動開發的能力。以執行效率和快速開發的能力著稱
- TurboGear 創建在其餘框架基礎上的框架,把其餘框架優秀的部分集成到一塊兒。因爲每一個框架都有一些部分作得很差,TurboGear試圖解決這個問題.它容許你從一個單文件服務開始,逐步擴展爲一個全棧服務
- tornado 一個強大的、可擴展的異步非阻塞 Web 服務器,同時也是一個輕量級 Web 框架
- web.py 一款輕量級的 Python web 開發框架,簡單、高效
- web2py 一種免費的、開源的 web 開發框架,用於敏捷地開發安全的、數據庫驅動的 web 應用
- Sanic 一個與 Flask 相似,基於 uvloop 的 web 框架,它能讓 Python 更快速
- hug 旨在簡化 Python RESET APIs 的開發,其自己並不是一個網絡框架,構建在 Falcon 的高性能 HTTP 庫之上,意味着可使用任何 wsgi 兼容的服務器(例如 gunicorn)將其部署到生產環境中
Web Server
- Gunicorn Green Unicorn,是一個 WSGI 服務器,用來支持 Python 應用,被設計成運行於Nginx以後,輕量級、易於使用、並使用許多UNIX特性
- uWSGI 用來構建全棧式的主機服務,既能看成獨立的 web 路由器來運行,也能運行在一個完整 web 服務器(好比Nginx或Apache)以後
- Meinheld 一個高性能的異步 WSGI Web 服務, 利用 greenlet 和 Picoev 實現異步 I/O
網絡爬蟲
消息隊列
遠程對象支持
日期和時間處理
- Delorean 用它處理日期和時間很是方便。設置時區,截取到秒、分、小時,甚至使用特定步驟從一個日期進到另外一個日期
- Arrow 提供了合理的、友好的方式來建立、控制、格式化、轉換 Python 的日期、時間和時間戳
Excel
SSH
科學計算與數據處理
- numpy
- pandas
- PyTables 提供了一些用於結構化數組的高級查詢功能,並且還能添加列索引以提高查詢速度,這跟關係型數據庫所提供的表索引功能很是相似。
- h5py 將數據存儲爲高效且可壓縮的HDF5格式
- fastcache 用 C 實現的,更快的,兼容 Python2 和 Python3 的緩存模塊
- PrettyPandas 用 pandas Style API 來將DataFrames轉換成適合展現的表格
- bcolz 列式存儲的數據持久化方案,壓縮率高並且查詢速度快
- odo 在各類數據格式之間高效的遷移數據。這裏的數據格式既包括內存中的數據結構,好比:列表、集合、元組、迭代器、numpy中的ndarray、pandas中的DataFrame、dynd中的array,以及上述各種的流式序列。也包括存在於Python程序以外的持久化數據,好比:CSV、JSON、行定界的JSON,以及以上各種的遠程版本,HDF5 (標準格式與Pandas格式皆可)、 BColz、 SAS、 SQL 數據庫 ( SQLAlchemy支持的皆可)、 Mongo 等
- Blaze 用於處理數據庫和分析查詢的陣列技術。是下一代的 NumPy。用於處理分佈式的各類不一樣數據源的計算
- joblib 爲Python函數提供輕量級管道任務(pipeline job)服務的一系列工具,包括透明磁盤IO緩衝、快速序列化、簡單並行化運行、日誌服務等,爲大數據集的快速可靠處理進行了優化,特別針對numpy數組的處理進行了優化
天然語言處理
性能優化
- numba 使用 Just-in-Time(JIT) 即時編譯器的方式加速代碼,其 Python 源碼經過 LLVMPy 生成 JIT 後的 so文件來加速
- cython 是 Python 的 C 語言擴展。準確說 Cython 是單獨的一門語言,專門用來寫在 Python 裏面 import 用的擴展庫。實際上 Cython 的語法基本上跟 Python 一致,而 Cython 有專門的編譯器:先將 Cython 代碼轉變成 C(自動加入了一大堆的 C-Python API),而後使用 C 編譯器編譯出最終的 Python 可調用的模塊。不過 Cython 的缺點是,你並不能真正編寫 Python 代碼
- pypy 使用 Python 實現的解釋器,它使用了 Just-in-Time(JIT) 即時編譯器,即動態編譯器,與靜態編譯器(如gcc,java等)不一樣,它是利用程序運行的過程的數據進行優化
- Pyston 是一款 Dropbox 推出的新的基於 JIT 的 Python 實現,使用 LLVM 編譯器實現代碼解析與轉換