库(Library)

Python中库是借用其他编程语言的概念,没有特别具体的定义。

模块和包侧重于代码组织,有明确的定义。库强调的是功能性,而不是代码组织。

我们通常将某个功能的“模块的集合”,称为库。

标准库(Standard Library)

Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。

Python标准库的主要功能有:

  1. 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能
  2. 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
  3. 操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能
  4. 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能
  5. 网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架
  6. W3C格式支持,包含HTML,SGML,XML的处理。
  7. 其它功能,包括国际化支持、数学运算、HASH、Tkinter等

目前学过的有:random、math、time、file、os、sys等模块。

  1. random模块实现随机数处理
  2. math模块实现数学相关的运算
  3. time模块实现时间的处理
  4. file模块实现对文件的操作
  5. OS模块实现和操作系统的交互
  6. sys模块实现和解释器的交互

第三方扩展库的介绍

强大的标准库奠定了python发展的基石,丰富和不断扩展的第三方库是python壮大的保证。我们可以进入PyPI官网(https://pypi.org):

python 第三方库 补全 python第三方库作用_Python

可以看到发布的第三方库达到了十多万种,众多的开发者为Python贡献了自己的力量。

表 常用第三方库大汇总

分类

库名称

说明

环境管理

P

非常简单的交互式 python 版本管理工具

Pyenv

简单的 Python 版本管理工具

Vex

可以在虚拟环境中执行命令

Virtualenvvirtualenvwrapper

创建独立 Python 环境的工具

包管理

pip

Python 包和依赖关系管理工具

pip-tools

保证 Python 包依赖关系更新的一组工具

Pipenv

Python 官方推荐的新一代包管理工具

Poetry

可完全取代 setup.py 的包管理工具

包仓库

warehouse

下一代 PyPI

Devpi

PyPI 服务和打包/测试/分发工具

分发(打包为可执行文件以便分发)

PyInstaller

将 Python 程序转成独立的执行文件(跨平台)

Nuitka

将脚本、模块、包编译成可执行文件或扩展模块

py2app

将 Python 脚本变为独立软件包(Mac OS X)

py2exe

将 Python 脚本变为独立软件包(Windows)

pynsist

一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python 本身

构建工具(将源码编译成软件)

Buildout

构建系统,从多个组件来创建,组装和部署应用

BitBake

针对嵌入式 Linux 的类似 make 的构建工具

Fabricate

对任何语言自动找到依赖关系的构建工具

交互式 Python 解析器

IPython

功能丰富的工具,非常有效的使用交互式 Python

bpython

界面丰富的 Python 解析器

Ptpython

高级交互式 Python 解析器,构建于 python-prompt-toolkit 之上

文件管理

Aiofiles

基于 asyncio,提供文件异步操作

Imghdr

(Python 标准库)检测图片类型

Mimetypes

(Python 标准库)将文件名映射为 MIME 类型

path.py

对 os.path 进行封装的模块

Pathlib

(Python3.4+ 标准库)跨平台的、面向对象的路径操作库

Unipath

用面向对象的方式操作文件和目录

Watchdog

管理文件系统事件的 API 和 shell 工具

日期和时间

Arrow

更好的 Python 日期时间操作类库

Chronyk

解析手写格式的时间和日期

Dateutil

Python datetime 模块的扩展

PyTime

一个简单易用的 Python 模块,用于通过字符串来操作日期/时间

when.py

提供用户友好的函数来帮助用户进行常用的日期和时间操作

文本处理

chardet

字符编码检测器,兼容 Python2 和 Python3

Difflib

(Python 标准库)帮助我们进行差异化比较

Fuzzywuzzy

模糊字符串匹配

Levenshtein

快速计算编辑距离以及字符串的相似度

Pypinyin

汉字拼音转换工具 Python 版

Shortuuid

一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID

simplejson

Python 的 JSON 编码、解码器

Unidecode

Unicode 文本的 ASCII 转换形式

Xpinyin

一个用于把汉字转换为拼音的库

Pygment

通用语法高亮工具

Phonenumbers

解析,格式化,储存,验证电话号码

Sqlparse

一个无验证的 SQL 解析器

特殊文本格式处理

Tablib

一个用来处理中表格数据的模块

Pyexcel

用来读写,操作 Excel 文件的库

python-docx

读取,查询以及修改word文件

PDFMiner

一个用于从 PDF 文档中抽取信息的工具

Python-Markdown2

纯 Python 实现的 Markdown 解析器

Csvkit

用于转换和操作 CSV 的工具

自然语言处理

NLTK

一个先进的平台,用以构建处理人类语言数据的 Python 程序

Jieba

中文分词工具

langid.py

独立的语言识别系统

SnowNLP

一个用来处理中文文本的库

Thulac

清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包

下载器

you-get

一个 YouTube/Youku/Niconico 视频下载器

图像处理

pillow

最常用的图像处理库

imgSeek

一个使用视觉相似性搜索一组图片集合的项目

face_recognition

简单易用的 python 人脸识别

python-qrcode

一个纯 Python 实现的二维码生成器

OCR

Pyocr

Tesseract 和 Cuneiform 的一个封装(wrapper)

pytesseract

Google Tesseract OCR 的另一个封装(wrapper)

音频处理

Audiolazy

Python 的数字信号处理包

Dejavu

音频指纹提取和识别

id3reader

一个用来读取 MP3 元数据的 Python 模块

TimeSide

开源 web 音频处理框架

Tinytag

一个用来读取 MP3, OGG, FLAC 以及 Wave 文件音乐元数据的库

Mingus

一个高级音乐理论和曲谱包,支持 MIDI 文件和回放功能

视频和GIF处理

Moviepy

一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs

scikit-video

SciPy 视频处理常用程序

地理位置

GeoDjango

世界级地理图形 web 框架

GeoIP

MaxMind GeoIP Legacy 数据库的 Python API

Geopy

Python 地址编码工具箱

HTTP

requests

人性化的 HTTP 请求库

httplib2

全面的 HTTP 客户端库

urllib3

一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库

Python实现的数据库

pickleDB

一个简单,轻量级键值储存数据库

PipelineDB

流式 SQL 数据库

TinyDB

一个微型的,面向文档型数据库

web框架

Django

Python 界最流行的 web 框架

Flask

一个 Python 微型框架

Tornado

一个 web 框架和异步网络库

CMS内容管理系统

odoo-cms

一个开源的,企业级 CMS,基于 odoo

djedi-cms

一个轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能

Opps

一个为杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django

电子商务和支付系统

django-oscar

一个用于 Django 的开源的电子商务框架

django-shop

一个基于 Django 的店铺系统

Shoop

一个基于 Django 的开源电子商务平台

Alipay

Python 支付宝 API

Merchant

一个可以接收来自多种支付平台支付的 Django 应用

游戏开发

Cocos2d

用来开发 2D 游戏

Panda3D

由迪士尼开发的 3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用 C++ 编写, 针对 Python 进行了完全的封装

Pygame

Pygame 是一组 Python 模块,用来编写游戏

RenPy

一个视觉小说(visual novel)引擎

计算机视觉库

OpenCV

开源计算机视觉库

Pyocr

Tesseract 和 Cuneiform 的包装库

SimpleCV

一个用来创建计算机视觉应用的开源框架

机器学习人工智能

TensorFlow

谷歌开源的最受欢迎的深度学习框架

keras

以 tensorflow/theano/CNTK 为后端的深度学习封装库,快速上手神经网络

Hebel

GPU 加速的深度学习库

Pytorch

一个具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架

scikit-learn

基于 SciPy 构建的机器学习 Python 模块

NuPIC

智能计算 Numenta 平台

科学计算和数据分析

NumPy

使用 Python 进行科学计算的基础包

Pandas

提供高性能,易用的数据结构和数据分析工具

SciPy

用于数学,科学和工程的开源软件构成的生态系统

PyMC

马尔科夫链蒙特卡洛采样工具

代码分析和调试

code2flow

把你的 Python 和 JavaScript 代码转换为流程图

Pycallgraph

这个库可以把你的 Python 应用的流程(调用图)进行可视化

Pylint

一个完全可定制的源码分析器

autopep8

自动格式化 Python 代码,以使其符合 PEP8 规范

Wdb

一个奇异的 web 调试器,通过 WebSockets 工作

Lineprofiler

逐行性能分析

Memory Profiler

监控 Python 代码的内存使用

图形用户界面

Pyglet

一个 Python 的跨平台窗口及多媒体库

PyQt

跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5

Tkinter

Tkinter 是 Python GUI 的一个事实标准库

wxPython

wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物

网络爬虫和HTML分析

Scrapy

一个快速高级的屏幕爬取及网页采集框架

Cola

一个分布式爬虫框架

Grab

站点爬取框架

Pyspider

一个强大的爬虫系统

html2text

将 HTML 转换为 Markdown 格式文本

python-goose

HTML 内容/文章提取器

硬件编程

Ino

操作 Arduino 的命令行工具

Pyro

Python 机器人编程库

PyUserInput

跨平台的,控制鼠标和键盘的模块

Pingo

Pingo 为类似 Raspberry Pi,pcDuino, Intel Galileo 等设备提供统一的 API

PIP模块管理工具

pip 是一个现代的,通用的Python包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

安装第三方扩展库的2种方式

第三方库有数十万种之多,以pymysql库为例讲解第三方扩展库的安装。

第一种方式:命令行下远程安装

  1. 其他数据源:(建议使用以下国内镜像源进行下载)

阿里云 Simple Indexhttp://mirrors.aliyun.com/pypi/simple/ 豆瓣:Simple Index 中国科学技术大学 : Simple Indexhttps://pypi.mirrors.ustc.edu.cn/simple 清华:Simple Indexhttps://pypi.tuna.tsinghua.edu.cn/simple 华中理工大学 : http://pypi.hustunique.com/simplehttp://pypi.hustunique.com/simple 山东理工大学 : http://pypi.sdutlinux.org/simplehttp://pypi.sdutlinux.org/simple V2EX:http://pypi.v2ex.com/simplehttp://pypi.v2ex.com/simple

  1. 以安装第三方pymysql库为例,在命令行提示符下输入:pip install pymysql 即可。

第二种方式:Pycharm中直接安装到项目中

在Pycharm中,依次点击:file-->setting-->Project 本项目名-->Project Interpreter

python 第三方库 补全 python第三方库作用_Python_02

点击+,然后输入要安装的第三方库pymysql,再点击按钮Install Package,等待安装即可,几秒种后,即提示安装成功:

python 第三方库 补全 python第三方库作用_Python_03

这样,我们就可以在项目中直接使用第三方库pymysql了