41. Python 中的常用第三方模块整理
Python 强大的生态优势,离不开丰富的第三方模块支撑,可极大节省开发成本、避免重复造轮子。PyPI 是全球官方第三方模块仓库,而 pip 是 Python 标配的包管理工具,支持模块的查询、安装、升级与卸载。本文详解 pip 基础用法、国内外源切换方案,并列举多款高频实用第三方模块,助力高效开发。
1. 第三方模块简介
Python 的标准库是随着 Pyhon 安装的时候默认自带的库,提供了有文本处理、系统管理、网络处理等功能。Python 的第三方库,是由各家厂商和 Python 爱好者开发的库,第三方库需要下载后安装到 Python 的安装目录下。
有一句话:“人生苦短,我用 Python”。使用 Python 可以节省开发时间,原因在于: Python 有丰富且易用的第三方模块。使用第三方模块省去了大量重复造轮子的时间,节约了众多开发者的生命。所以现如今 Python 这么火,大行其道,也是有其原因的。
网站 pypi 汇聚了所有的第三方模块的信息,通过该网站可以查找和下载第三方模块,输入第三方模块的名字可以查询到该模块的信息,如下图所示:

2. pip 简介
2.1 pip 简介
pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载的功能。
Python 3.4+ 以上版本自带 pip 工具,如果在 python 下载最新版本的安装包,则已经自带了该工具。使用命令pip --version检查是否已经安装了 pip,如下所示:
C:\> pip --version pip 9.0.1 from C:\Python3\lib\site-packages (python 3.6)
2.2 pip 和 pip3
存在有两个主要的 Python 版本:Python2 和 Python3,这两个版本的语法和库不完全兼容,对应有 2 个包管理工具:pip 和 pip3,它们的区别如下:
- 如果系统中同时安装了 Python2 和 Python3,则 pip 用于安装 Python2 的模块,pip3 用于安装 Python3 的模块;
- 如果系统中只安装了 Python2,那么就只能使用 pip;
- 如果系统中只安装了 Python3,那么既可以使用 pip 也可以使用 pip3,二者是等价的。
在 Linux 系统中,默认安装有 Python2,安装完 Python3 以后,系统中就存在两个版本的 Python,因此,最好明确使用 pip3 指定安装 Python3 的模块。
2.3 更换 pip 的源
pip 工具会从网站自动下载 Python 的第三方模块,提供下载 Python 第三方模块的网站被称为源。默认情况下,pip 从国外网站下载 Python 的第三方模块,速度非常的慢。为了加快下载速度,可以将 pip 的源改为国内的镜像源。
国内常用的源如下:
| 源的提供方 | 源的 URL |
|---|---|
| 阿里云 | https://mirrors.aliyun.com/pypi/simple |
| 清华 | https://pypi.tuna.tsinghua.edu.cn/simple |
| 中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple |
| 华中理工大学 | http://pypi.hustunique.com |
| 豆瓣 | http://pypi.douban.com/simple |
2.4 在 Linux 下更换源
在 Linux 下更换源的步骤如下:
1. 在用户主目录下创建 .pip 目录
mkdir ~/.pip
2. 创建 ~/.pip/pip.conf
[global] index-url = https://mirrors.aliyun.com/pypi/simple
2.5 在 Windows 下更换源
在 Windows 下更换源的步骤如下:
1. 进入目录 Roaming
cd C:\Users\Administrator\AppData\Roaming
目录 Roaming 用来存放软件的配置文件。
2. 创建目录 pip
mkdir pip
3. 创建文件 pip\pip.ini
[global] index-url = https://mirrors.aliyun.com/pypi/simple
3. pip3 的使用
3.1 pip3 list
命令pip3 list列出所有已经安装的包,示例如下:
C:\> pip3 list certifi (2020.4.5.1) chardet (3.0.4) idna (2.9) numpy (1.18.4) pip3 (9.0.1) pygame (1.9.4) requests (2.23.0) setuptools (28.8.0) urllib3 (1.25.9)
pip3 list输出了已经安装的包的名称和版本。
3.2 pip3 search package-name
命令pip3 search package-name在 pypi 上根据 package-name 搜索第三方包。
输出所有包含有关键字 requests 的第三方模块,并给出模块的功能简介,示例如下:
C:\> pip3 search requests requests-auth (5.1.0) - Authentication for Requests pydantic-requests (0.1.3) - A pydantic integration with requests. Requests-OpenTracing (0.2.0) - OpenTracing support for Requests yamlsettings-requests (1.0.0) - YamlSettings Request Extension requests-aws4auth (0.9) - AWS4 authentication for Requests pycopy-requests (0.0.0) - Dummy requests module for Pycopy jupyter-requests (0.0.3) - Send requests to a Jupyter server. requests-middleware (0.1.2) - Composable HTTP middleware for requests ...
3.3 pip3 install package-name
命令pip3 install package-name安装名称为 package-name 的第三方模块。命令pip install从网站 pypi 下载指定名称的第三方模块然后自动安装,非常方便。
安装名为 django 的第三方模块,示例如下:
C:\>pip3 install django
Collecting django
Downloading https://files.pythonhosted.org/packages/9d/04/04abb097c84c770180ee
ebe7ed920ce42f9917ab5ad4de01ff8ed11bc25b/Django-3.0.6-py3-none-any.whl (7.5MB)
34% |███████████▏ | 2.6MB 144kB/s eta 0:00:34
34% |███████████▏ | 2.6MB 108kB/s eta 0:00:45
35% |███████████▏ | 2.6MB 108kB/s eta 0:00:45
...
3.4 pip3 install –upgrade package-name
命令pip3 install --upgrade package-name升级名称为 package-name 的第三方模块。命令pip install从网站 pypi 下载指定名称的第三方模块的最新版本,然后自动安装升级。
升级名为 requests 的第三方模块,示例如下:
C:\>pip3 install --upgrade requests Requirement already up-to-date: requests in c:\python3\lib\site-packages Requirement already up-to-date: certifi>=2017.4.17 in c:\python3\lib\site-pac kages (from requests) Requirement already up-to-date: idna<3,>=2.5 in c:\python3\lib\site-packages (from requests) Requirement already up-to-date: chardet<4,>=3.0.2 in c:\python3\lib\site-pack ages (from requests) Requirement already up-to-date: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in d:\ad don\py36\lib\site-packages (from requests)
3.5 pip3 uninstall package-name
命令pip3 uninstall package-name卸载名称为 package-name 的第三方模块。卸载 requests 模块,示例如下:
C:\>pip3 uninstall requests Uninstalling requests-2.23.0: c:\python3\lib\site-packages\requests-2.23.0.dist-info\installer c:\python3\lib\site-packages\requests-2.23.0.dist-info\license c:\python3\lib\site-packages\requests-2.23.0.dist-info\metadata c:\python3\lib\site-packages\requests-2.23.0.dist-info\record c:\python3\lib\site-packages\requests-2.23.0.dist-info\top_level.txt c:\python3\lib\site-packages\requests-2.23.0.dist-info\wheel c:\python3\lib\site-packages\requests\__init__.py ... Proceed (y/n)? y Successfully uninstalled requests-2.23.0
卸载 requests 模块时,首先列出该模块相关的文件,在删除这些文件前,程序要求用户输入 y 进行确认。用户输入 y 后,pip3 就会卸载该模块。
3.6 pip3 show package-name
命令pip3 show package-name 显示名称为 package-name 的第三方模块的信息,示例如下:
C:\> pip3 show requests Name: requests Version: 2.23.0 Summary: Python HTTP for Humans. Home-page: https://requests.readthedocs.io Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: c:\python3\lib\site-packages Requires: chardet, idna, certifi, urllib3
在以上信息中,requires 列出 requests 模块的依赖的模块:chardet、idna、certifi、urllib3,当安装 requests 模块时,会自动安装这 4 个模块。
4. 常用的第三方模块
4.1 requests 模块
requests 是一个的简单易用的 http 库,发出 http 请求并获取响应,可以用于抓取网站的页面。
使用requests.get(url)方法抓取 baidu 的首页,示例如下:
>>> import requests
>>> response = requests.get('https://www.baidu.com')
>>> response.text
'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type c
ontent=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge>
<meta content=always name=referrer>
...
- 在第 2 行,使用 requests.get(‘https://www.baidu.com’) 获取 baidu 首页
- 在第 3 行,response.text 是 baidu 首页 html 文件的内容
4.2 numpy 模块
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 是一个运行速度非常快的数学库,主要用于科学计算,包含:
- 一个强大的 N 维数组对象 ndarray;
- 统计函数;
- 线性代数、傅里叶变换、随机数生成;
- 矩阵运算。
numpy 提供了从数组中查找最小元素,最大元素的功能,示例如下:
>>> import numpy >>> a = numpy.array([[1,2,3],[4,5,6],[7,8,9]]) >>> numpy.amin(a) 1 >>> numpy.amax(a) 9
- 在第 2 行,创建一个二维数组;
- 在第 3 行,函数 amin(a) 返回数组的最小元素;
- 在第 5 行,函数 amax(a) 返回数组的最小元素。
4.3 pygame 模块
Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。允许你在 Python 程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块,可以支持多个操作系统,使用 Pygame 开发的程序可以运行在 windows、linux 和 mac os 上。
4.4 pymysql 模块
pymysql 模块提供了访问 mysql 数据库的功能,包括:
- 获取与数据库的连接;
- 执行 SQL 语句并获取执行结果;
- 关闭数据库连接。
假设存在数据库 QA,查询表 users 的示例如下:
import pymysql
conn = pymysql.connect(host="localhost", user="root", passwd="", db='QA')
cursor = conn.cursor()
cursor.execute("SELECT userId,password FROM users");
rows = cursor.fetchall()
for row in rows:
print(row[0], row[1])
cursor.close()
conn.close()
- 在第 3 行,连接数据库 QA
- 在第 6 行,执行 SQL 语句
SELECT userId,password FROM users - 在第 7 行,函数 fetchall() 返回 SQL 语句的查询结果
程序输出如下:
张三 ZhangSan 李四 LiSi 王五 WangWu
4.5 其它常用的模块
| 模块名 | 功能 |
|---|---|
| urllib3 | Python HTTP 库,安全连接池、支持文件 post |
| RoboBrowser | 无需独立的浏览器即可浏览网页 |
| MechanicalSoup | 一个与网站自动交互 Python 库 |
| mechanize | 有状态、可编程的 Web 浏览库 |
| hyper | Python 的 HTTP/2 客户端 |
| grab | 网络爬虫框架(基于 pycurl/multicur) |
| scrapy | 网络爬虫框架(基于 twisted)架 |
| selenium | 用于 Web 应用程序测试的工具 |
| jieba | 中文分词工具 |
| OpenCV | 开源计算机视觉库 |
| SimpleCV | 用于照相机、图像处理、特征提取、格式转换 |
熟练掌握 pip 包管理操作与国内镜像源配置,是 Python 开发的基础必备技能,可有效解决模块下载慢、安装失败等问题。各类第三方模块各司其职,分别适配网络请求、科学计算、游戏开发、数据库操作等场景。灵活选用合适模块、规范管理项目依赖,能够大幅提升 Python 项目的开发效率与实用性。
以上关于41. Python 中的常用第三方模块整理的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 41. Python 中的常用第三方模块整理
微信
支付宝