[轉]Python 模塊收集

Python 模塊收集

工具

  • attrs Attributes Without Boilerplate
  • assertpy assert 語句的替代品
  • affirm 用於更好的替換 assert 語句
  • decorator 簡化 decorator 的使用難度而開發的模塊
  • isort 可自動對 Python 的 import 語句進行排序和分段。可將大量的 import 結構轉成很是適合閱讀的排版

日誌處理

  • logging 標準庫日誌系統
  • logbook 一個功能完備強大的日誌庫
  • Structlog 是一個先進的日誌處理器。他能夠和任何現存的日誌記錄工具相集成,幷包裝了 Python 標準庫。你能夠構建定製的記錄工具,根據你的須要增長上下文,保證你的日誌一致、可讀

系統工具

  • keyring
  • sh 是一個成熟的Python子進程接口,容許你像調用函數同樣調用任何程序。超級好用。
  • Watchdog 是一個跨平臺的Python庫和shell工具,能夠監視文件系統事件。超級好用,容易上手。
  • PyFilesystem 文件系統的抽象層

郵件

數據庫

  • MySQL-Python 對 MySQL C 驅動的封裝,僅支持 Python2,該項目名稱爲MySQLdb1
  • mysqlclient 基於 MySQLdb1 項目,並添加對 Python3 的支持
  • mysql-connector-python MySQL 官方支持的純 Python 驅動
  • PyMySQL MySQL 的一個純 Python 接口
  • Tornado-MySQL 基於 PyMySQL 並添加對 Tornado 的支持
  • adb 異步 mysql 庫
  • SQLAlchemy 提供了 SQL 工具包及對象關係映射(ORM)工具
  • Peewee 超級輕量的一個 ORM 框架
  • pymongo MongoDB 官方支持的驅動程序
  • motor 爲 Tornado 提供了一個基於回調和 Future 機制的非堵塞的 MongoDB 驅動程序
  • redis-py Redis 的 Python 接口程序

打印輸出

  • prettytable 表格形式輸出數據
  • tabulate 能夠僅調用一個函數就可以輸出小的、好看的表格
  • humanize 將數值、日期等轉化爲更易讀的形式
  • colorama 輸出着色,跨平臺
  • termcolor 輸出着色
  • blessings 輸出着色
  • hues 輸出着色,同時能夠用來代替日誌模塊

並行計算、分佈式、任務調度

  • Celery 一個很是成熟的Python分佈式框架,能夠在分佈式的系統中,異步的執行任務,並提供有效的管理和調度功能。
  • SCOOP 提供簡單易用的分佈式調用接口,使用Future接口來進行併發。
  • Dispy 相比起 Celery 和 SCOOP,Dispy 提供更爲輕量級的分佈式並行服務
  • PP (Parallel Python)是另一個輕量級的 Python 並行服務
  • Asyncoro 一個利用 Generator 實現分佈式併發的 Python 框架
  • APScheduler 任務調度模塊,一個 Python 定時任務框架
  • mpi4py 一個構建在MPI之上的Python庫,主要使用Cython編寫
  • pyee 一個 node.js’s EventEmitter 的 Python 粗略實現
  • threadpool 一個比較老的線程池庫,不太建議使用

命令行參數解析

  • Docopt 忘了 optparse 和 argparse 吧,使用 docstring 來構建優雅的、高可讀性、複雜(若是你有這個須要)的命令行界面。在我看來這是2013年誕生的最好的庫
  • Click 用於快速建立命令行工具
  • clize 利用裝飾器將函數轉換成命令行解析器
  • python-fire Google 開源的一個可從任何 Python 代碼自動生成命令行接口(CLI)的庫,是開發和調試很是有用的工具,只需將想要在命令行顯示的功能寫爲函數/模塊/類,就能夠在命令行模式下調用

HTTP

  • Requests 爲人類準備的 HTTP,以更 pythonic 的方式處理 HTTP 請求,比 urllib2 好用得多
  • builtwith 識別網站所使用技術
  • whois 域名公共查詢工具:Whois
  • robotparser 標準庫,解析 robots.txt 文件

HTML/XML

  • lxml 聯合了 libxml2 和 libxslt。若是你要處理 XML 或 HTML,lxml 是最好的選擇,真的
  • PyQuery 像 JQuery 同樣使用
  • html5lib
  • BeautifulSoup 一個能夠從 HTML 或 XML 文件中提取數據的 Python 庫

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

網絡爬蟲

消息隊列

  • pika RabbitMQ 的 Python 庫
  • zmq ZeroMQ 的 Python 庫
  • kafka-python Apache Kafka 的 Python 庫
  • boto 亞馬遜消息列隊服務 Python SDK

遠程對象支持

日期和時間處理

  • 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數組的處理進行了優化

天然語言處理

  • python-pinyin 將漢字轉爲拼音。能夠用於漢字註音、排序、檢索
  • Pinyin2Hanzi 拼音轉漢字,能夠做爲拼音輸入法的轉換引擎
  • jieba 中文分詞組件
  • thulac 一個高效的中文詞法分析工具包

性能優化

  • 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 編譯器實現代碼解析與轉換
相關文章
相關標籤/搜索