黑马程序员技术交流社区
标题:
Python--Flask Django等常用库总结
[打印本页]
作者:
长沙黑马周润发
时间:
2018-10-19 18:01
标题:
Python--Flask Django等常用库总结
# Python 资源大全中文版
我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。[awesome-python](
https://link.jianshu.com?t=https ... ta%2Fawesome-python
) 是 vinta 发起维护的 Python 资源列表,内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由伯乐在线持续更新。
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。
### 我们要做什么?
* 基于 awesome-python 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
* 整理后的内容,将收录在[伯乐在线资源频道](
https://link.jianshu.com?t=http%3A%2F%2Fhao.jobbole.com%2F
)。可参考已整理的内容:
* 《[Scrapy:Python的爬虫框架](
https://link.jianshu.com?t=http% ... %2Fpython-scrapy%2F
)》
* 《[Flask:一个使用Python编写的轻量级Web应用框架](
https://link.jianshu.com?t=http% ... bole.com%2Fflask%2F
)》
### 环境管理
管理 Python 版本和环境的工具
* p:非常简单的交互式 python 版本管理工具。[官网](
https://link.jianshu.com?t=https ... .com%2Fqw3rtman%2Fp
)
* pyenv:简单的 Python 版本管理工具。[官网](
https://link.jianshu.com?t=https ... .com%2Fyyuu%2Fpyenv
)
* Vex:可以在虚拟环境中执行命令。[官网](
https://link.jianshu.com?t=https ... m%2Fsashahart%2Fvex
)
* virtualenv:创建独立 Python 环境的工具。[官网](
https://link.jianshu.com?t=https ... 2Fpypi%2Fvirtualenv
)
* virtualenvwrapper:virtualenv 的一组扩展。[官网](
https://link.jianshu.com?t=https ... 2Fvirtualenvwrapper
)
### 包管理
管理包和依赖的工具。
* pip:Python 包和依赖关系管理工具。[官网](
https://link.jianshu.com?t=https%3A%2F%2Fpip.pypa.io%2F
)
* pip-tools:保证 Python 包依赖关系更新的一组工具。[官网](
https://link.jianshu.com?t=https ... %2Fnvie%2Fpip-tools
)
* conda:跨平台,Python 二进制包管理工具。[官网](
https://link.jianshu.com?t=https ... %2Fconda%2Fconda%2F
)
* Curdling:管理 Python 包的命令行工具。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fclarete.li%2Fcurdling%2F
)
* wheel:Python 分发的新标准,意在取代 eggs。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fpythonwheels.com%2F
)
### 包仓库
本地 PyPI 仓库服务和代{过}{滤}理。
* warehouse:下一代 PyPI。[官网](
https://link.jianshu.com?t=https ... %2Fpypa%2Fwarehouse
)
* Warehouse:PyPA 提供的 PyPI 镜像工具。[官网](
https://link.jianshu.com?t=https%3A%2F%2Fwarehouse.python.org%2F
) [bandersnatch](
https://link.jianshu.com?t=https ... pypa%2Fbandersnatch
)
* devpi:PyPI 服务和打包/测试/分发工具。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fdoc.devpi.net%2F
)
* localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。[官网](
https://link.jianshu.com?t=https ... llingen%2Flocalshop
)
### 分发
打包为可执行文件以便分发。
* PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。[官网](
https://link.jianshu.com?t=https ... aller%2Fpyinstaller
)
* dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。[官网](
https://link.jianshu.com?t=http% ... .readthedocs.org%2F
)
* Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fnuitka.net%2F
)
* py2app:将 Python 脚本变为独立软件包(Mac OS X)。[官网](
https://link.jianshu.com?t=http% ... ted.org%2Fpy2app%2F
)
* py2exe:将 Python 脚本变为独立软件包(Windows)。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.py2exe.org%2F
)
* pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。[官网](
https://link.jianshu.com?t=http% ... .readthedocs.org%2F
)
### 构建工具
将源码编译成软件。
* buildout:一个构建系统,从多个组件来创建,组装和部署应用。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.buildout.org%2F
)
* BitBake:针对嵌入式 Linux 的类似 make 的构建工具。[官网](
https://link.jianshu.com?t=http% ... ke-user-manual.html
)
* fabricate:对任何语言自动找到依赖关系的构建工具。[官网](
https://link.jianshu.com?t=https ... ive%2Fp%2Ffabricate
)
* PlatformIO:多平台命令行构建工具。[官网](
https://link.jianshu.com?t=https ... formio%2Fplatformio
)
* PyBuilder:纯 Python 实现的持续化构建工具。[官网](
https://link.jianshu.com?t=https ... builder%2Fpybuilder
)
* SCons:软件构建工具。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.scons.org%2F
)
### 交互式解析器
交互式 Python 解析器。
* IPython:功能丰富的工具,非常有效的使用交互式 Python。[官网](
https://link.jianshu.com?t=https ... 2Fipython%2Fipython
)
* [bpython](
https://link.jianshu.com?t=http% ... le.com%2Fbpython%2F
):界面丰富的 Python 解析器。[官网](
https://link.jianshu.com?t=http% ... -interpreter.org%2F
)
* ptpython:高级交互式Python解析器, 构建于[python-prompt-toolkit](
https://link.jianshu.com?t=https ... thon-prompt-toolkit
) 之上。[官网](
https://link.jianshu.com?t=https ... slenders%2Fptpython
)
### 文件
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
* imghdr:(Python 标准库)检测图片类型。[官网](
https://link.jianshu.com?t=https ... brary%2Fimghdr.html
)
* mimetypes:(Python 标准库)将文件名映射为 MIME 类型。[官网](
https://link.jianshu.com?t=https ... ry%2Fmimetypes.html
)
* path.py:对 os.path 进行封装的模块。[官网](
https://link.jianshu.com?t=https ... %2Fjaraco%2Fpath.py
)
* pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。[官网](
https://link.jianshu.com?t=https ... rg%2Fen%2Fpep428%2F
)
* python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。[官网](
https://link.jianshu.com?t=https ... hupp%2Fpython-magic
)
* Unipath:用面向对象的方式操作文件和目录。[官网](
https://link.jianshu.com?t=https ... 2Fmikeorr%2FUnipath
)
* watchdog:管理文件系统事件的 API 和 shell 工具[官网](
https://link.jianshu.com?t=https ... khargosh%2Fwatchdog
)
### 日期和时间
操作日期和时间的类库。
* arrow:更好的 Python 日期时间操作类库。[官网](
https://link.jianshu.com?t=https ... Fcrsmithdev%2Farrow
)
* Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。[官网](
https://link.jianshu.com?t=https ... einFlummi%2FChronyk
)
* dateutil:Python datetime 模块的扩展。[官网](
https://link.jianshu.com?t=https ... i%2Fpython-dateutil
)
* delorean:解决 Python 中有关日期处理的棘手问题的库。[官网](
https://link.jianshu.com?t=https ... usuf3%2Fdelorean%2F
)
* moment:一个用来处理时间和日期的Python库。灵感来自于Moment.js。[官网](
https://link.jianshu.com?t=https ... 2Fzachwill%2Fmoment
)
* PyTime:一个简单易用的Python模块,用于通过字符串来操作日期/时间。[官网](
https://link.jianshu.com?t=https ... m%2Fshinux%2FPyTime
)
* pytz:现代以及历史版本的世界时区定义。将时区数据库引入Python。[官网](
https://link.jianshu.com?t=https%3A%2F%2Flaunchpad.net%2Fpytz
)
* when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。[官网](
https://link.jianshu.com?t=https ... om%2Fdirn%2FWhen.py
)
### 文本处理
用于解析和操作文本的库。
* 通用
* [chardet](
https://link.jianshu.com?t=http% ... le.com%2Fchardet%2F
):字符编码检测器,兼容 Python2 和 Python3。[官网](
https://link.jianshu.com?t=https ... 2Fchardet%2Fchardet
)
* difflib:(Python 标准库)帮助我们进行差异化比较。[官网](
https://link.jianshu.com?t=https ... rary%2Fdifflib.html
)
* ftfy:让Unicode文本更完整更连贯。[官网](
https://link.jianshu.com?t=https ... sight%2Fpython-ftfy
)
* fuzzywuzzy:模糊字符串匹配。[官网](
https://link.jianshu.com?t=https ... atgeek%2Ffuzzywuzzy
)
* Levenshtein:快速计算编辑距离以及字符串的相似度。[官网](
https://link.jianshu.com?t=https ... thon-Levenshtein%2F
)
* pangu.py:在中日韩语字符和数字字母之间添加空格。[官网](
https://link.jianshu.com?t=https ... %2Fvinta%2Fpangu.py
)
* yfiglet-figlet:[pyfiglet -figlet](
https://link.jianshu.com?t=https ... Fpwaller%2Fpyfiglet
) 的 Python实现。
* shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID。[官网](
https://link.jianshu.com?t=https ... ologies%2Fshortuuid
)
* unidecode:Unicode 文本的 ASCII 转换形式 。[官网](
https://link.jianshu.com?t=https ... %2Fpypi%2FUnidecode
)
* uniout:打印可读的字符,而不是转义的字符串。[官网](
https://link.jianshu.com?t=https ... %2Fmoskytw%2Funiout
)
* xpinyin:一个用于把汉字转换为拼音的库。[官网](
https://link.jianshu.com?t=https ... %2Flxneng%2Fxpinyin
)
* simplejson:Python的JSON编码、解码器。[官网](
https://link.jianshu.com?t=https ... io%2Fen%2Flatest%2F
)、[GitHub](
https://link.jianshu.com?t=https ... lejson%2Fsimplejson
)
* Slug化
* awesome-slugify:一个 Python slug 化库,可以保持 Unicode。[官网](
https://link.jianshu.com?t=https ... 5%2Fawesome-slugify
)
* python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。[官网](
https://link.jianshu.com?t=https ... 3k%2Fpython-slugify
)
* unicode-slugify:一个 slug 工具,可以生成 unicode slugs ,需要依赖 Django 。[官网](
https://link.jianshu.com?t=https ... a%2Funicode-slugify
)
* 解析器
* phonenumbers:解析,格式化,储存,验证电话号码。[官网](
https://link.jianshu.com?t=https ... python-phonenumbers
)
* PLY:lex 和 yacc 解析工具的 Python 实现。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.dabeaz.com%2Fply%2F
)
* Pygments:通用语法高亮工具。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fpygments.org%2F
)
* pyparsing:生成通用解析器的框架。[官网](
https://link.jianshu.com?t=http% ... g.wikispaces.com%2F
)
* python-nameparser:把一个人名分解为几个独立的部分。[官网](
https://link.jianshu.com?t=https ... 2Fpython-nameparser
)
* python-user-agents:浏览器 user agent 解析器。[官网](
https://link.jianshu.com?t=https ... Fpython-user-agents
)
* sqlparse:一个无验证的 SQL 解析器。[官网](
https://link.jianshu.com?t=https ... rg%2Fen%2Flatest%2F
)
### 特殊文本格式处理
一些用来解析和操作特殊文本格式的库。
* 通用
* tablib:一个用来处理中表格数据的模块。[官网](
https://link.jianshu.com?t=https ... nnethreitz%2Ftablib
)
* Office
* Marmir:把输入的Python 数据结构转换为电子表单。[官网](
https://link.jianshu.com?t=https ... com%2Fbrianray%2Fmm
)
* openpyxl:一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。[官网](
https://link.jianshu.com?t=https ... rg%2Fen%2Flatest%2F
)
* python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。[官网](
https://link.jianshu.com?t=https ... enxml%2Fpython-docx
)
* unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。[官网](
https://link.jianshu.com?t=https ... dagwieers%2Funoconv
)
* XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。[官网](
https://link.jianshu.com?t=https ... rg%2Fen%2Flatest%2F
)
* xlwings:一个使得在 Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fxlwings.org%2F
)
* [xlwt](
https://link.jianshu.com?t=http%3A%2F%2Fhao.jobbole.com%2Fxlwt%2F
):读写 Excel 文件的数据和格式信息。[官网](
https://link.jianshu.com?t=https ... python-excel%2Fxlwt
) / [xlrd](
https://link.jianshu.com?t=https ... python-excel%2Fxlrd
)
* relatorio:模板化OpenDocument 文件。[官网](
https://link.jianshu.com?t=http%3A%2F%2Frelatorio.tryton.org%2F
)
* PDF
* PDFMiner:一个用于从PDF文档中抽取信息的工具。[官网](
https://link.jianshu.com?t=https ... %2Feuske%2Fpdfminer
)
* PyPDF2:一个可以分割,合并和转换 PDF 页面的库。[官网](
https://link.jianshu.com?t=https ... %2Fmstamy2%2FPyPDF2
)
* ReportLab:快速创建富文本 PDF 文档。[官网](
https://link.jianshu.com?t=http% ... com%2Fopensource%2F
)
* Markdown
* Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。[官网](
https://link.jianshu.com?t=https ... 2Flepture%2Fmistune
)
* Python-Markdown:John Gruber’s Markdown 的 Python 版实现。[官网](
https://link.jianshu.com?t=https ... n%2FPython-Markdown
)
* Python-Markdiwn2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。[官网](
https://link.jianshu.com?t=https ... %2Fpython-markdown2
)
* YAML
* PyYAML:Python 版本的 YAML 解析器。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fpyyaml.org%2F
)
* CSV
* csvkit:用于转换和操作 CSV 的工具。[官网](
https://link.jianshu.com?t=https ... ireservice%2Fcsvkit
)
* Archive
* unp:一个用来方便解包归档文件的命令行工具。[官网](
https://link.jianshu.com?t=https ... m%2Fmitsuhiko%2Funp
)
### 自然语言处理
用来处理人类语言的库。
* [NLTK](
https://link.jianshu.com?t=http%3A%2F%2Fhao.jobbole.com%2Fnltk%2F
):一个先进的平台,用以构建处理人类语言数据的 Python 程序。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.nltk.org%2F
)
* jieba:中文分词工具。[官网](
https://link.jianshu.com?t=https ... com%2Ffxsjy%2Fjieba
)
* langid.py:独立的语言识别系统。[官网](
https://link.jianshu.com?t=https ... Fsaffsd%2Flangid.py
)
* Pattern:Python 网络信息挖掘模块。[官网](
https://link.jianshu.com?t=http% ... .ua.ac.be%2Fpattern
)
* SnowNLP:一个用来处理中文文本的库。[官网](
https://link.jianshu.com?t=https ... 2Fisnowfy%2Fsnownlp
)
* TextBlob:为进行普通自然语言处理任务提供一致的 API。[官网](
https://link.jianshu.com?t=http% ... rg%2Fen%2Flatest%2F
)
* TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。[官网](
https://link.jianshu.com?t=https ... 2shou%2FTextGrocery
)
### 文档
用以生成项目文档的库。
* [Sphinx](
https://link.jianshu.com?t=http% ... ole.com%2Fsphinx%2F
):Python 文档生成器。[官网](
https://link.jianshu.com?t=http% ... rg%2Fen%2Flatest%2F
)
* awesome-sphinxdoc:[官网](
https://link.jianshu.com?t=https ... 2Fawesome-sphinxdoc
)
* MkDocs:对 Markdown 友好的文档生成器。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fwww.mkdocs.org%2F
)
* pdoc:一个可以替换Epydoc 的库,可以自动生成 Python 库的 API 文档。[官网](
https://link.jianshu.com?t=https ... 2FBurntSushi%2Fpdoc
)
* Pycco:文学编程(literate-programming)风格的文档生成器。[官网](
https://link.jianshu.com?t=https ... Fpycco-docs%2Fpycco
)
### 配置
用来保存和解析配置的库。
* config:[logging](
https://link.jianshu.com?t=https ... rary%2Flogging.html
) 模块作者写的分级配置模块。[官网](
https://link.jianshu.com?t=https ... com%2Fconfig-doc%2F
)
* ConfigObj:INI 文件解析器,带验证功能。[官网](
https://link.jianshu.com?t=http% ... on%2Fconfigobj.html
)
* ConfigParser:(Python 标准库) INI 文件解析器。[官网](
https://link.jianshu.com?t=https ... 2Fconfigparser.html
)
* profig:通过多种格式进行配置,具有数值转换功能。[官网](
https://link.jianshu.com?t=http% ... g%2Fen%2Fdefault%2F
)
* python-decouple:将设置和代码完全隔离。[官网](
https://link.jianshu.com?t=https ... s%2Fpython-decouple
)
### 命令行工具
用于创建命令行程序的库。
* 命令行程序开发
* asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。[官网](
https://link.jianshu.com?t=https ... ttain%2Fasciimatics
)
* cement:Python 的命令行程序框架。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fbuiltoncement.com%2F
)
* click:一个通过组合的方式来创建精美命令行界面的包。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fclick.pocoo.org%2Fdev%2F
)
* cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。[官网](
https://link.jianshu.com?t=http% ... eveloper%2Fcliff%2F
)
* clint:Python 命令行程序工具。[官网](
https://link.jianshu.com?t=https ... ennethreitz%2Fclint
)
* colorama:跨平台彩色终端文本。[官网](
https://link.jianshu.com?t=https ... g%2Fpypi%2Fcolorama
)
* docopt:Python 风格的命令行参数解析器。[官网](
https://link.jianshu.com?t=http%3A%2F%2Fdocopt.org%2F
)
* Gooey:一条命令,将命令行程序变成一个 GUI 程序。[官网](
https://link.jianshu.com?t=https ... Fchriskiehl%2FGooey
)
* python-prompt-toolkit:一个用于构建强大的交互式命令行程序的库。[官网](
https://link.jianshu.com?t=https ... thon-prompt-toolkit
)
* [Pythonpy](
https://link.jianshu.com?t=http% ... e.com%2Fpythonpy%2F
):在命令行中直接执行任何Python指令。[官网](
https://link.jianshu.com?t=https ... 1%2Fpythonpy%2Fwiki
)
* 生产力工具
* aws-cli:Amazon Web Services 的通用命令行界面。[官网](
https://link.jianshu.com?t=https ... com%2Faws%2Faws-cli
)
* bashplotlib:在终端中进行基本绘图。[官网](
https://link.jianshu.com?t=https ... glamp%2Fbashplotlib
)
* caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。[官网](
https://link.jianshu.com?t=https ... on%2Fcaniusepython3
)
* cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。[官网](
https://link.jianshu.com?t=https ... reyr%2Fcookiecutter
)
* doitlive:一个用来在终端中进行现场演示的工具。[官网](
https://link.jianshu.com?t=https ... 2Fsloria%2Fdoitlive
)
* howdoi:通过命令行获取即时的编程问题解答。[官网](
https://link.jianshu.com?t=https ... m%2Fgleitz%2Fhowdoi
)
* httpie:一个命令行HTTP 客户端,cURL 的替代品,易用性更好。[官网](
https://link.jianshu.com?t=https ... m%2Fjkbrzt%2Fhttpie
)
* PathPicker:从bash输出中选出文件。[官网](
https://link.jianshu.com?t=https ... cebook%2FPathPicker
)
* percol:向UNIX shell 传统管道概念中加入交互式选择功能。[官网](
https://link.jianshu.com?t=https ... com%2Fmooz%2Fpercol
)
* SAWS:一个加强版的 AWS 命令行。[官网](
https://link.jianshu.com?t=https ... Fdonnemartin%2Fsaws
)
* thefuck:修正你之前的命令行指令。[官网](
https://link.jianshu.com?t=https ... om%2Fnvbn%2Fthefuck
)
* mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。[官网](
https://link.jianshu.com?t=https ... com%2Fdbcli%2Fmycli
)
* pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。[官网](
https://link.jianshu.com?t=https ... com%2Fdbcli%2Fpgcli
)
* try:一个从来没有更简单的命令行工具,用来试用python库。[官网](
https://link.jianshu.com?t=https ... %2Ftimofurrer%2Ftry
)
作者:aimaile
链接:
https://www.jianshu.com/p/a166e63544d8
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2