在知乎上看到一個關於Python資源的很不錯的主題,惋惜點贊不過400多
Awesome Python中文版來啦!javascript
本文由 伯樂在線 - 艾凌風 翻譯,Namco 校稿。未經許可,禁止轉載!
英文出處:github.com。歡迎加入翻譯組。php
----------------css
這又是一個 Awesome XXX 系列的資源整理,由 vinta 發起和維護。內容包括:Web框架、網絡爬蟲、網絡內容提取、模板引擎、數據庫、數據可視化、圖片處理、文本處理、天然語言處理、機器學習、日誌、代碼分析等。html
伯樂在線已在 GitHub 上發起「Python 資源大全中文版」的整理。歡迎擴散、歡迎加入。html5
GitHub - jobbole/awesome-python-cn: Python資源大全中文版,內容包括:Web框架、網絡爬蟲、網絡內容提取、模板引擎、數據庫、數據可視化、圖片處理、文本處理、天然語言處理、機器學習、日誌、代碼分析等java
環境管理
管理 Python 版本和環境的工具node
包管理
管理包和依賴的工具。python
- pip – Python 包和依賴關係管理工具。
- pip-tools – 保證 Python 包依賴關係更新的一組工具。
- conda – 跨平臺,Python 二進制包管理工具。
- Curdling – 管理 Python 包的命令行工具。
- wheel – Python 分發的新標準,意在取代 eggs。
包倉庫
本地 PyPI 倉庫服務和代理。mysql
分發
打包爲可執行文件以便分發。git
- PyInstaller – 將 Python 程序轉換成獨立的執行文件(跨平臺)。
- dh-virtualenv – 構建並將 virtualenv 虛擬環境做爲一個 Debian 包來發布。
- Nuitka – 將腳本、模塊、包編譯成可執行文件或擴展模塊。
- py2app – 將 Python 腳本變爲獨立軟件包(Mac OS X)。
- py2exe – 將 Python 腳本變爲獨立軟件包(Windows)。
- pynsist – 一個用來建立 Windows 安裝程序的工具,能夠在安裝程序中打包 Python自己。
構建工具
將源碼編譯成軟件。
交互式解析器
交互式 Python 解析器。
文件
文件管理和 MIME(多用途的網際郵件擴充協議)類型檢測。
日期和時間
操做日期和時間的類庫。
- arrow- 更好的 Python 日期時間操做類庫。
- Chronyk – Python 3 的類庫,用於解析手寫格式的時間和日期。
- dateutil – Python datetime 模塊的擴展。
- delorean- 解決 Python 中有關日期處理的棘手問題的庫。
- moment – 一個用來處理時間和日期的Python庫。靈感來自於Moment.js。
- PyTime – 一個簡單易用的Python模塊,用於經過字符串來操做日期/時間。
- pytz – 現代以及歷史版本的世界時區定義。將時區數據庫引入Python。
- when.py – 提供用戶友好的函數來幫助用戶進行經常使用的日期和時間操做。
文本處理
用於解析和操做文本的庫。
特殊文本格式處理
一些用來解析和操做特殊文本格式的庫。
- 通用
- Office
- Marmir – 把輸入的Python 數據結構轉換爲電子表單。
- openpyxl – 一個用來讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 文件的庫。
- python-docx – 讀取,查詢以及修改 Microsoft Word 2007/2008 docx 文件。
- unoconv – 在 LibreOffice/OpenOffice 支持的任意文件格式之間進行轉換。
- XlsxWriter – 一個用於建立 Excel .xlsx 文件的 Python 模塊。
- xlwings – 一個使得在 Excel 中方便調用 Python 的庫(反之亦然),基於 BSD 協議。
- xlwt /xlrd – 讀寫 Excel 文件的數據和格式信息。
- relatorio – 模板化OpenDocument 文件。
- PDF
- Markdown
- YAML
- CSV
- Archive
- unp – 一個用來方便解包歸檔文件的命令行工具。
天然語言處理
用來處理人類語言的庫。
文檔
用以生成項目文檔的庫。
- Sphinx – Python 文檔生成器。
- MkDocs – 對 Markdown 友好的文檔生成器。
- pdoc – 一個能夠替換Epydoc 的庫,能夠自動生成 Python 庫的 API 文檔。
- Pycco – 文學編程(literate-programming)風格的文檔生成器。
配置
用來保存和解析配置的庫。
命令行工具
用於建立命令行程序的庫。
下載器
用來進行下載的庫.
- s3cmd – 一個用來管理Amazon S3 和 CloudFront 的命令行工具。
- s4cmd – 超級 S3 命令行工具,性能更增強勁。
- you-get – 一個 YouTube/Youku/Niconico 視頻下載器,使用 Python3 編寫。
- youtube-dl – 一個小巧的命令行程序,用來下載 YouTube 視頻。
圖像處理
用來操做圖像的庫.
OCR
光學字符識別庫。
音頻
用來操做音頻的庫
視頻
用來操做視頻和GIF的庫。
地理位置
地理編碼地址以及用來處理經緯度的庫。
HTTP
使用HTTP的庫。
- requests – 人性化的HTTP請求庫。
- grequests – requests 庫 + gevent ,用於異步 HTTP 請求.
- httplib2 – 全面的 HTTP 客戶端庫。
- treq – 相似 requests 的Python API 構建於 Twisted HTTP 客戶端之上。
- urllib3 – 一個具備線程安全鏈接池,支持文件 post,清晰友好的 HTTP 庫。
數據庫
Python實現的數據庫。
數據庫驅動
用來鏈接和操做數據庫的庫。
- MySQL – awesome-mysql系列
- PostgreSQL
- psycopg2 – Python 中最流行的 PostgreSQL 適配器。
- queries – psycopg2 庫的封裝,用來和 PostgreSQL 進行交互。
- txpostgres – 基於 Twisted 的異步 PostgreSQL 驅動。
- 其餘關係型數據庫
- apsw – 另外一個 Python SQLite封裝。
- dataset – 在數據庫中存儲Python字典 – 能夠協同SQLite,MySQL,和 PostgreSQL工做。
- pymssql- 一個簡單的Microsoft SQL Server數據庫接口。
- NoSQL 數據庫
ORM
實現對象關係映射或數據映射技術的庫。
- 關係型數據庫
- NoSQL 數據庫
- 其餘
- butterdb – Google Drive 電子表格的 Python ORM。
Web 框架
全棧 web 框架。
- Django – Python 界最流行的 web 框架。
- Flask – 一個 Python 微型框架。
- Pyramid – 一個小巧,快速,接地氣的開源Python web 框架。
- Bottle – 一個快速小巧,輕量級的 WSGI 微型 web 框架。
- CherryPy – 一個極簡的 Python web 框架,服從 HTTP/1.1 協議且具備WSGI 線程池。
- TurboGears – 一個能夠擴展爲全棧解決方案的微型框架。
- web.py – 一個 Python 的 web 框架,既簡單,又強大。
- web2py – 一個全棧 web 框架和平臺,專一於簡單易用。
- Tornado – 一個web 框架和異步網絡庫。
權限
容許或拒絕用戶訪問數據或功能的庫。
- Carteblanche – Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.
- django-guardian – Django 1.2+ 實現了單個對象權限。
- django-rules – 一個小巧可是強大的應用,提供對象級別的權限管理,且不須要使用數據庫。
CMS
內容管理系統
- 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。
電子商務
用於電子商務以及支付的框架和庫。
RESTful API
用來開發RESTful APIs的庫
- Django
- Flask
- Pyramid
- 與框架無關的
- falcon – 一個用來創建雲 API 和 web app 後端的噶性能框架。
- sandman – 爲現存的數據庫驅動系統自動建立 REST APIs 。
- restless – 框架無關的 REST 框架 ,基於從 Tastypie 學到的知識。
- ripozo – 快速建立 REST/HATEOAS/Hypermedia APIs。
驗證
實現驗證方案的庫。
模板引擎
模板生成和詞法解析的庫和工具。
- Jinja2 – 一個現代的,對設計師友好的模板引擎。
- Chameleon – 一個 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 進行了速度上的優化。
- Genshi – Python 模板工具,用以生成 web 感知的結果。
- Mako – Python 平臺的超高速輕量級模板。
Queue
處理事件以及任務隊列的庫。
- celery – 一個異步任務隊列/做業隊列,基於分佈式消息傳遞。
- huey – 小型多線程任務隊列。
- mrq – Mr. Queue -一個 Python 的分佈式 worker 任務隊列, 使用 Redis 和 gevent。
- rq – 簡單的 Python 做業隊列。
- simpleq – 一個簡單的,可無限擴張的,基於亞馬遜 SQS 的隊列。
搜索
對數據進行索引和執行搜索查詢的庫和軟件。
動態消息
用來建立用戶活動的庫。
資源管理
管理、壓縮、縮小網站資源的工具。
緩存
緩存數據的庫。
電子郵件
用來發送和解析電子郵件的庫。
國際化
用來進行國際化的庫。
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的庫。
網絡站點爬取
爬取網絡站點的庫
網頁內容提取
用於進行網頁內容提取的庫。
表單
進行表單操做的庫。
數據驗證
數據驗證庫。多用於表單驗證。
- Cerberus – A mappings-validator with a variety of rules, normalization-features and simple customization that uses a pythonic schema-definition.
- colander – 一個用於對從 XML, JSON,HTML 表單獲取的數據或其餘一樣簡單的序列化數據進行驗證和反序列化的系統。
- kmatch – 一種用於匹配/驗證/篩選 Python 字典的語言。
- schema -一個用於對 Python 數據結構進行驗證的庫。
- Schematics – 數據結構驗證。
- valideer – 輕量級可擴展的數據驗證和適配庫。
- voluptuous – 一個 Python 數據驗證庫。主要是爲了驗證傳入 Python的 JSON,YAML 等數據。
反垃圾技術
幫助你和電子垃圾進行戰鬥的庫。
標記
用來進行標記的庫。
管理面板
管理界面庫。
靜態站點生成器
靜態站點生成器是一個軟件,它把文本和模板做爲輸入,而後輸出HTML文件。
- Pelican – 使用 Markdown 或 ReST 來處理內容, Jinja 2 來製做主題。支持 DVCS, Disqus.。AGPL 許可。
- Cactus – 爲設計師設計的靜態站點生成器。
- Hyde – 基於 Jinja2 的靜態站點生成器。
- Nikola – 一個靜態網站和博客生成器。
- Tinkerer – Tinkerer 是一個博客引擎/靜態站點生成器,由Sphinx驅動。
- Lektor – 一個簡單易用的靜態 CMS 和博客引擎。
進程
操做系統進程啓動及通訊庫。
併發和並行
用以進行併發和並行操做的庫。
網絡
用於網絡編程的庫。
- asyncio – (Python 標準庫) 異步 I/O, 事件循環, 協程以及任務。
- Twisted – 一個事件驅動的網絡引擎。
- pulsar – 事件驅動的併發框架。
- diesel – 基於Greenlet 的事件 I/O 框架。
- pyzmq – 一個 ZeroMQ 消息庫的 Python 封裝。
- txZMQ – 基於 Twisted 的 ZeroMQ 消息庫的 Python 封裝。
WebSocket
幫助使用WebSocket的庫。
WSGI 服務器
兼容 WSGI 的 web 服務器
RPC 服務器
兼容 RPC 的服務器。
密碼學
圖形用戶界面
用來建立圖形用戶界面程序的庫。
- curses – 內建的ncurses 封裝,用來建立終端圖形用戶界面。
- enaml – 使用相似 QML 的Declaratic語法來建立美觀的用戶界面。
- kivy – 一個用來建立天然用戶交互(NUI)應用程序的庫,能夠運行在 Windows, Linux, Mac OS X, Android 以及 iOS平臺上。
- pyglet – 一個Python 的跨平臺窗口及多媒體庫。
- PyQt – 跨平臺用戶界面框架Qt 的 Python 綁定 ,支持Qt v4 和 Qt v5。
- PySide – P跨平臺用戶界面框架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 技術進行界面的展現。
遊戲開發
超讚的遊戲開發庫。
- 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)引擎。
日誌
用來生成和操做日誌的庫。
測試
進行代碼庫測試和生成測試數據的庫。
- 測試框架
- Web 測試
- Mock測試
- mock – (Python 標準庫) 一個用於僞造測試的庫。
- doublex – Python 的一個功能強大的 doubles 測試框架。
- freezegun – 經過僞造日期模塊來生成不一樣的時間。
- httmock – 針對 Python 2.6+ 和 3.2+ 生成 僞造請求的庫。
- httpretty – Python 的 HTTP 請求 mock 工具。
- responses – 僞造 Python 中的 requests 庫的一個通用庫。
- VCR.py – 在你的測試中記錄和重放 HTTP 交互。
- 對象工廠
- factoryboy – 一個 Python 用的測試固件 (test fixtures) 替代庫。
- mixer – 另一個測試固件 (test fixtures) 替代庫,支持 Django, Flask, SQLAlchemy, Peewee 等。
- modelmommy – 爲 Django 測試建立隨機固件
- 代碼覆蓋率
- 僞數據
- 錯誤處理
- FuckIt.py – FuckIt.py 使用最早進的技術來保證你的 Python 代碼不管對錯都能繼續運行。
代碼分析和Lint工具
進行代碼分析,解析和操做代碼庫的庫和工具。
- 代碼分析
- Lint工具
- Flake8 – 模塊化源碼檢查工具: pep8, pyflakes 以及 co。
- Pylint – 一個徹底可定製的源碼分析器。
- pylama – Python 和 JavaScript 的代碼審查工具。
調試工具
用來進行代碼調試的庫。
科學技術和數據分析
用來進行科學計算和數據分析的庫。
- astropy – 一個天文學 Python 庫。
- bcbio-nextgen – 這個工具箱爲全自動高通量測序分析提供符合最佳實踐的處理流程。
- bccb – 生物分析相關代碼集合
- Biopython – Biopython 是一組能夠無償使用的用來進行生物計算的工具。
- blaze – NumPy 和 Pandas 的大數據接口。
- cclib – 一個用來解析和解釋計算化學軟件包輸出結果的庫。
- NetworkX – 一個爲複雜網絡設計的高性能軟件。
- Neupy – 執行和測試各類不一樣的人工神經網絡算法。
- Numba – Python JIT (just in time) 編譯器,針對科學用的 Python ,由Cython 和 NumPy 的開發者開發。
- 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 算法交易庫。
數據可視化
進行數據可視化的庫。 參見: awesome-javascript。
- matplotlib – 一個 Python 2D 繪圖庫。
- bokeh – 用 Python 進行交互式 web 繪圖。
- ggplot – ggplot2 給 R 提供的 API 的 Python 版本。
- plotly – 協同 Python 和 matplotlib 工做的 web 繪圖庫。
- pygal – 一個 Python SVG 圖表建立工具。
- pygraphviz – Graphviz 的 Python 接口。
- PyQtGraph – 交互式實時2D/3D/圖像繪製及科學/工程學組件。
- SnakeViz – 一個基於瀏覽器的 Python’s cProfile 模塊輸出結果查看工具。
- vincent – 把 Python 轉換爲 Vega 語法的轉換工具。
- VisPy – 基於 OpenGL 的高性能科學可視化工具。
計算機視覺
計算機視覺庫。
機器學習
機器學習庫。 參見: awesome-machine-learning.
MapReduce
MapReduce 框架和庫。
- dpark – Spark 的 Python 克隆版,一個相似 MapReduce 的框架。
- dumbo – 這個 Python 模塊可讓人輕鬆的編寫和運行 Hadoop 程序。
- luigi – 這個模塊幫你構建批處理做業的複雜流水線。
- mrjob – 在 Hadoop 或 Amazon Web Services 上運行 MapReduce 任務。
- PySpark – Spark 的 Python API 。
- streamparse – 運行鍼對事實數據流的 Python 代碼。集成了Apache Storm。
函數式編程
使用 Python 進行函數式編程。
- CyToolz – Toolz 的 Cython 實現 : 高性能函數式工具。
- fn.py – 在 Python 中進行函數式編程 : 實現了一些享受函數式編程缺失的功能。
- funcy – 炫酷又實用的函數式工具。
- Toolz – 一組用於迭代器,函數和字典的函數式編程工具。
第三方 API
用來訪問第三方 API的庫。 參見: List of Python API Wrappers and Libraries。
DevOps 工具
用於 DevOps 的軟件和庫。
任務調度
任務調度庫。
外來函數接口
使用外來函數接口的庫。
- cffi – 用來調用 C 代碼的外來函數接口。
- ctypes – (Python 標準庫) 用來調用 C 代碼的外來函數接口。
- PyCUDA – Nvidia CUDA API 的封裝。
- SWIG – 簡化的封裝和接口生成器。
高性能
讓 Python 更快的庫。
- Cython – 優化的 Python 靜態編譯器。使用類型混合使 Python 編譯成 C 或 C++ 模塊來得到性能的極大提高。
- 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 編程。
網絡可視化和SDN
用來進行網絡可視化和SDN(軟件定義網絡)的工具和庫。
- Mininet – 一款流行的網絡模擬器以及用 Python 編寫的 API。
- POX – 一個針對基於 Python 的軟件定義網絡應用(例如 OpenFlow SDN 控制器)的開源開發平臺。
- Pyretic – 火熱的 SDN 編程語言中的一員,爲網絡交換機和模擬器提供強大的抽象能力。
- SDX Platform – 基於 SDN 的 IXP 實現,影響了 Mininet, POX 和 Pyretic。
硬件
用來對硬件進行編程的庫。
- ino -操做Arduino的命令行工具。
- Pyro – Python 機器人編程庫。
- PyUserInput – 跨平臺的,控制鼠標和鍵盤的模塊。
- scapy – 一個很是棒的操做數據包的庫。
- wifi – 一個 Python 庫和命令行工具用來在 Linux 平臺上操做WiFi。
- Pingo – Pingo 爲相似Raspberry Pi,pcDuino, Intel Galileo等設備提供統一的API用以編程。
兼容性
幫助從 Python 2 向 Python 3遷移的庫。
雜項
不屬於上面任何一個類別,可是很是有用的庫。
算法和設計模式
Python 實現的算法和設計模式。
編輯器插件
編輯器和 IDE 的插件
- Emacs
- Elpy – Emacs Python 開發環境。
- Sublime Text
- SublimeJEDI – 一個 Sublime Text 插件,用來使用超讚的自動補全庫 Jedi。
- Anaconda – Anaconda 把你的 Sublime Text 3 變成一個功能齊全的 Python IDE。
- Vim
- Visual Studio
- PTVS – Visual Studio 的 Python 工具
集成開發環境
流行的 Python 集成開發環境。
- PyCharm – 商業化的 Python IDE ,由 JetBrains 開發。也有免費的社區版提供。
- LiClipse – 基於 Eclipse 的免費多語言 IDE 。使用 PyDev 來支持 Python 。
- Spyder – 開源 Python IDE。
服務
在線工具和簡化開發的 API 。
持續集成
參見: awesome-CIandCD.
- Travis CI – 一個流行的工具,爲你的開源和私人項目提供持續集成服務。(僅支持 GitHub)
- CircleCI – 一個持續集成工具,能夠很是快速的進行並行測試。 (僅支持 GitHub)
- Vexor CI – 一個爲私人 app 提供持續集成的工具,支持按分鐘付費。
- Wercker – 基於 Docker 平臺,用來構建和部署微服務。
代碼質量
資源
在這裏能夠找到新的 Python 庫。
網站
週刊
Twitter
Python 資源大全中文版
伯樂在線已在 GitHub 上發起「Python 資源大全中文版」的整理。歡迎擴散、歡迎加入。
GitHub - jobbole/awesome-python-cn: Python資源大全中文版,內容包括:Web框架、網絡爬蟲、網絡內容提取、模板引擎、數據庫、數據可視化、圖片處理、文本處理、天然語言處理、機器學習、日誌、代碼分析等