Python新手必装的10个常用第三方库清单

Mia
Mia
发布时间:2026-11-06| 11人浏览过
原创

针对Python新手的实用第三方库清单,涵盖网络请求、网页提取、数据清洗、数值计算、图表绘制、Excel办公、图片处理、终端美化、单元测试与轻量Web等10个基础库,提供规范安装流程、代码示例与认知辨析。

Python 语言自带的标准库能够支撑基础的文件交互、数值运算与基础数据结构操作,但在面对网络数据拉取、结构化数据清洗、多格式文件转换以及自动化验证等高频任务时,原生写法通常冗长且容易出错。掌握高质量的第三方库是初学者从“语法学习”跨越到“实际解决问题”的核心一步。本文梳理了 10 个在开发中最为基础、维护稳定且社区文档完备的常用第三方库,涵盖网络爬取、数据处理、办公图像、工程辅助与轻量 Web 五个场景,并给出规范的隔离安装流程与快速调用示例。

Python新手必装的10个常用第三方库清单
图 1:10 个常用第三方库的功能层次与应用场景导览

一、规范安装:为什么必须使用虚拟环境

在安装任何第三方库之前,明确包管理工具 pip 与虚拟环境 venv 的工作机制至关重要。很多初学者在刚开始写代码时,习惯直接在操作系统终端中执行 pip install 库名。这种方式会将代码包直接下载到全局 Python 的系统目录中。

全局安装虽然省去了前期的环境配置步骤,但会在后续开发中引发严重问题:当你在电脑上写了多个项目,项目 A 需要使用 Pandas 1.x 版本的旧语法,而项目 B 需要使用 Pandas 2.x 的新特性时,全局目录只能保留一个版本,必然导致其中一个项目无法运行。此外,全局安装的包过多后,极难排查某个报错究竟源自哪一次依赖覆盖。

正确的做法是:为每一个独立的练习或项目创建一个专用的虚拟环境。Python 官方从 3.3 版本起便内置了 venv 模块,无需额外安装即可使用。

Python新手必装的10个常用第三方库清单
图 2:第三方库标准安装与虚拟环境初始化流程

虚拟环境标准操作五步法

  1. 新建并进入项目目录:打开命令行终端,在合适的位置建立工作文件夹:
    mkdir demo_project
    cd demo_project
  2. 创建虚拟环境:使用内置模块生成名为 .venv 的独立环境目录:
    python3 -m venv .venv
  3. 激活虚拟环境:
    • macOS / Linux 系统:source .venv/bin/activate
    • Windows PowerShell:.venv\Scripts\Activate.ps1
    激活成功后,命令行提示符最前端会出现 (.venv) 字样。
  4. 配置镜像源并安装依赖:国内网络环境下从官方 PyPI 下载包偶尔会超时,推荐设置国内清华镜像源:
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    pip install requests
  5. 导出项目依赖文件:开发完成后,执行以下命令将当前环境安装的库与具体版本记录下来:
    pip freeze > requirements.txt
    当换到另一台机器时,只需执行 pip install -r requirements.txt,就能一键还原一模一样的运行环境。

二、10个核心第三方库详解与实用示例

以下 10 个第三方库按照解决问题的类型分为五个模块。每个库均列出其核心定位、解决的原生痛点、极简调用代码与预期示例输出。

Python新手必装的10个常用第三方库清单
图 3:网络请求、数据计算与自动化交付之间的多库协同流水线

(一)网络请求与数据抓取

1. Requests:优雅简洁的 HTTP 客户端

解决痛点:Python 内置了 urllib 模块,但发送带参数、自定义请求头或 JSON 数据的请求时,需要手动编码 URL、处理字节流解码并编写异常分流,代码冗长。Requests 将 HTTP 请求简化为符合直觉的方法调用,自动管理 Keep-Alive、编码推断与会话 Cookie。

安装命令:pip install requests
import requests

url = "https://api.github.com"

try:
    # 发送 GET 请求,设置 5 秒超时时间
    response = requests.get(url, timeout=5)
    # 若返回 HTTP 4xx 或 5xx 状态码则抛出异常
    response.raise_for_status()
    
    # 自动解析返回的 JSON 格式数据
    payload = response.json()
    print("请求状态码:", response.status_code)
    print("API 根节点字段数:", len(payload))
    print("用户接口地址示例:", payload.get("user_url"))
except requests.exceptions.RequestException as err:
    print("网络请求发生异常:", err)
示例运行输出
请求状态码: 200
API 根节点字段数: 32
用户接口地址示例: https://api.github.com/users/{user}

使用提醒:生产环境中调用网络接口务必指定 timeout 参数。若不指定超时,在目标服务器网络阻塞时,程序会处于无限期挂起状态。

2. Beautiful Soup 4 (bs4):DOM 标签提取利器

解决痛点:从网页抓取数据时,如果直接用正则表达式匹配 HTML,一旦网页标签层级调整或属性换行,正则极易失效甚至漏配。Beautiful Soup 4 将 HTML 文本解析为层级分明的树状结构,支持通过标签名、CSS 类名和属性快速提取文本。

安装命令:pip install beautifulsoup4
from bs4 import BeautifulSoup

html_text = """
Python 语法通识免费
自动化办公实战¥99
""" # 使用内置 html.parser 解析树结构 soup = BeautifulSoup(html_text, "html.parser") # 提取所有 class 包含 card 的节点 cards = soup.find_all("div", class_="card") for item in cards: title = item.find("span", class_="title").get_text() price = item.find("span", class_="price").get_text() print(f"课程:{title} | 价格:{price}")
示例运行输出
课程:Python 语法通识 | 价格:免费
课程:自动化办公实战 | 价格:¥99

(二)数值计算与结构化数据分析

3. NumPy:高性能多维数组与向量化计算

解决痛点:Python 原生的 list 是通用对象的引用集合,若要对其中百万个数字逐一乘以系数,只能通过 for 循环或列表推导式逐个计算,解释器开销大且运行缓慢。NumPy 提供了底层基于 C 语言的连续内存数组对象 ndarray,支持广播机制与向量化运算,速度相比原生循环有数十倍提升。

安装命令:pip install numpy
import numpy as np

# 创建一维数值数组
sales = np.array([120, 135, 150, 180, 210])

# 向量化运算:所有元素统一上浮 10% 并扣减固定成本 5
revenue = sales * 1.1 - 5

print("调整后产出:", np.round(revenue, 2))
print("均值:", np.mean(revenue))
print("标准差:", np.round(np.std(revenue), 2))
示例运行输出
调整后产出: [127. 143.5 160. 193. 226. ]
均值: 169.9
标准差: 35.08

4. Pandas:数据表格清洗与多维统计分析

解决痛点:面对带有表头、不同列数据类型(字符、日期、浮点数)的二维表格时,原生字典套列表的方式极难进行“按某列去重”、“空值插补”、“分组求均值”等操作。Pandas 提供的 DataFrame 结构让用户能够像在 SQL 数据库或 Excel 中一样自由切片和聚合数据。

安装命令:pip install pandas
import pandas as pd

raw_data = {
    "员工": ["王明", "李静", "张强", "赵雪", "钱伟"],
    "部门": ["技术", "财务", "技术", "技术", "财务"],
    "出勤天数": [21, 22, 19, 21, 20],
    "绩效考核分": [88, 92, 79, 95, 84]
}

df = pd.DataFrame(raw_data)

# 条件筛选:挑选考核分大于等于 85 的员工
high_performers = df[df["绩效考核分"] >= 85]
print("高绩效名单:\n", high_performers[["员工", "部门", "绩效考核分"]])

# 分组聚合:按部门统计平均出勤天数与平均绩效
summary = df.groupby("部门")[["出勤天数", "绩效考核分"]].mean()
print("\n部门统计均值:\n", summary)
示例运行输出
高绩效名单:
   员工  部门  绩效考核分
0  王明  技术      88
1  李静  财务      92
3  赵雪  技术      95

部门统计均值:
      出勤天数  绩效考核分
部门                
财务    21.0      88.0
技术    20.3      87.3

5. Matplotlib:经典可靠的静态图表绘制

解决痛点:纯文本数据不利于洞察趋势。Matplotlib 是 Python 生态中资历最老、应用最广的绘图底座,无论是折线图、柱状图、散点图还是直方图,都能通过精细的 API 控制线条样式、坐标轴刻度及标注。

安装命令:pip install matplotlib
import matplotlib.pyplot as plt

# 模拟月份与对应的访客量数据
months = ["1月", "2月", "3月", "4月", "5月"]
visitors = [320, 450, 580, 510, 690]

plt.figure(figsize=(6, 3.8))
# 绘制带有数据标记点的折线
plt.plot(months, visitors, marker="o", color="#464B48", linewidth=2, label="月度活跃")
plt.title("2026年上半年访客趋势")
plt.xlabel("统计月份")
plt.ylabel("访问量 (人次)")
plt.grid(True, linestyle="--", alpha=0.6)
plt.legend()
plt.tight_layout()

# 保存为图片文件
plt.savefig("traffic_trend.png", dpi=150)
print("图表已成功生成并保存至 traffic_trend.png")
示例运行输出
图表已成功生成并保存至 traffic_trend.png

注意:在部分默认没有配置中文字体的操作系统(如 Linux 终端或特定 Windows 配置)中,直接绘制中文可能会出现小方块乱码。可通过在代码顶部设置 plt.rcParams['font.sans-serif'] = ['SimHei', 'PingFang SC'] 指定系统中已安装的字体。


(三)日常办公与多媒体处理

6. OpenPyXL:脱离 Office 读写 Excel 电子表格

解决痛点:日常办公中有大量 .xlsx 格式的报表需要处理。内置模块只能读写逗号分隔的 .csv 纯文本文件,无法保留多工作表(Sheet)、单元格公式及样式。OpenPyXL 不需要电脑安装微软 Office 软件,即可纯粹通过代码完成表格创建、修改与公式写入。

安装命令:pip install openpyxl
import openpyxl

# 创建全新工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "采购清单"

# 写入表头与数据行
ws.append(["物品名称", "单价", "数量", "总金额"])
ws.append(["键盘", 199, 2, "=B2*C2"])
ws.append(["显示器", 1299, 1, "=B3*C3"])

# 保存至本地磁盘
wb.save("order_summary.xlsx")
print("已成功创建 Excel 文件:order_summary.xlsx")
示例运行输出
已成功创建 Excel 文件:order_summary.xlsx

7. Pillow (PIL):轻量实用的图片批量处理

解决痛点:当遇到需要将上百张照片统一压缩尺寸、添加半透明文字水印、截取正方形头像或从 PNG 转换为 JPEG 时,手动操作耗时耗力。Pillow 提供了简单的图像对象模型,支持几何变换、滤镜过滤以及颜色空间转换。

安装命令:pip install pillow
from PIL import Image

# 演示:创建一张 200x200 的纯色测试图像
img = Image.new("RGB", (200, 200), color=(138, 148, 120))

# 调整大小为 100x100
resized_img = img.resize((100, 100))

# 转换为黑白灰度模式
gray_img = resized_img.convert("L")

# 保存处理结果
gray_img.save("processed_thumb.jpg", format="JPEG")
print(f"原图尺寸:{img.size} -> 缩放后尺寸:{gray_img.size},模式:{gray_img.mode}")
示例运行输出
原图尺寸:(200, 200) -> 缩放后尺寸:(100, 100),模式:L

(四)工程调试与代码质量保证

8. Rich:让黑白控制台焕发活力的终端美化工具

解决痛点:初学者的终端输出通常只有单调的单行白字,当打印复杂的嵌套字典、JSON 结构或跟踪长耗时循环时,很难看清数据层次。Rich 无需复杂的终端转义符配置,能直接在终端中输出带高亮的表格、树形目录、彩色语法以及平滑的执行进度条。

安装命令:pip install rich
from rich.console import Console
from rich.table import Table

console = Console()

# 构建具有样式的结构化表格
table = Table(title="系统部署任务状态")
table.add_column("服务名称", style="cyan", no_wrap=True)
table.add_column("实例端口", style="magenta")
table.add_column("健康检查", style="green")

table.add_row("Auth-Service", "8001", "Healthy")
table.add_row("Payment-Gateway", "8002", "Healthy")
table.add_row("Notification-Worker", "8003", "Degraded")

console.print(table)
示例运行输出
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ 服务名称            ┃ 实例端口 ┃ 健康检查   ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Auth-Service        │ 8001     │ Healthy    │
│ Payment-Gateway     │ 8002     │ Healthy    │
│ Notification-Worker │ 8003     │ Degraded   │
└─────────────────────┴──────────┴────────────┘

9. Pytest:极简高效的自动化单元测试

解决痛点:写完函数后,很多新手依靠在文件底部写 print() 语句人工比对结果,效率低且容易漏测。内置模块 unittest 遵循面向对象设计,需要继承 TestCase 类并调用专有断言方法。而 Pytest 完全抛弃样板代码,直接使用 Python 原生的 assert 关键字,即可对业务逻辑展开全自动校验。

安装命令:pip install pytest
# 业务文件或测试文件:test_calc.py
def calculate_discount(price: float, rate: float) -> float:
    if not (0 < rate <= 1):
        raise ValueError("折扣率必须在 (0, 1] 区间内")
    return round(price * rate, 2)

def test_normal_discount():
    assert calculate_discount(100.0, 0.8) == 80.0

def test_edge_zero_discount():
    # 验证异常是否按预期被正确抛出
    import pytest
    with pytest.raises(ValueError):
        calculate_discount(100.0, 0)

在终端运行命令:pytest test_calc.py

示例运行输出
============================= test session starts ==============================
collected 2 items

test_calc.py ..                                                      [100%]

============================== 2 passed in 0.03s ===============================

(五)轻量 Web 与接口开发

10. Flask:学习成本最低的微型 Web 框架

解决痛点:当需要对外提供一个简易的数据查询接口,或者为自己写的脚本搭建一个本地网页操作界面时,重型框架 Django 的目录结构和配置项对新手来说过于繁琐。Flask 核心极度轻量,只需一个 .py 文件、不到 10 行代码,就能启动一个规范的 HTTP Web 服务。

安装命令:pip install flask
from flask import Flask, jsonify

app = Flask(__name__)

# 定义根路径路由
@app.route("/")
def home():
    return "欢迎访问简易本地 Web 站点"

# 定义 JSON 接口路由
@app.route("/api/status")
def get_status():
    return jsonify({
        "status": "online",
        "service": "demo-backend",
        "version": "1.0.0"
    })

if __name__ == "__main__":
    # 启动本地开发服务器,监听 5000 端口
    app.run(host="127.0.0.1", port=5000)
示例运行输出
* Serving Flask app 'app'
* Debug mode: off
* Running on http://127.0.0.1:5000
Press CTRL+C to quit

三、新手容易混淆的两个核心认知辨析

辨析一:新手应该一口气把这 10 个库全部装完吗?

表面看似合理的理由:一次性把常见库全装好,之后写任何代码都不会报错 ModuleNotFoundError,省去每次都要查库名和安装的麻烦。

实际需要修正的地方:这种做法违背了现代软件工程“最小依赖原则”。像 Pandas 和 Matplotlib 这种计算可视化库,底层依赖繁多的二进制依赖包(如 NumPy、dateutil、pytz、contourpy 等),安装过程耗时,且会占用数以百兆的磁盘空间。若你当前的项目只是写一个抓取网页文本的小脚本,安装沉重的数据分析工具没有任何意义。

正确做法:建立按需引入的习惯。每个新项目建立专属虚拟环境,用到了网络请求就只装 requests,用到了 Excel 读写就只装 openpyxl。只有在需要多库协作时才组合安装。

辨析二:第三方库功能更强,是不是完全不需要学标准库了?

表面看似合理的理由:既然 Requests 比 urllib 更好用、Pandas 比内置字典更好算,那花时间记标准库的繁琐用法似乎是多此一举。

实际需要修正的地方:第三方库不是空中楼阁,它们是构建在标准库之上的封装。更关键的是,许多轻量级操作如果动辄引入第三方库,不仅会增加代码打包和部署的复杂度,还会带来意料之外的性能损耗。

例如,对于小规模的简单文件读写、路径拼接与解析,Python 3.4 引入的标准库 pathlib 已经极其现代优雅;处理标准 JSON 文本时,内置的 json 模块执行速度极快且完全无需额外安装。基石逻辑用标准库,复杂业务用第三方库,才是成熟的搭配策略。

四、清单速查与选型对照

为了方便在实际开发中快速对号入座,下表汇总了这 10 个常用第三方库的应用定位、核心优势与代码调用特征。遇到具体编程需求时,可先在矩阵中检索对应的工具库。

Python新手必装的10个常用第三方库清单
图 4:10 个常用第三方库任务与选型速查矩阵

学习 Python 的关键不在于死记硬背每个库包含多少个函数,而在于知道什么问题应该用什么工具解决。在初学阶段,建议挑选一个与你目前最感兴趣的场景(比如自动爬取网页或者批量整理 Excel)对应的库,在独立的虚拟环境中动手运行上面的示例代码,观察输入与输出,逐步建立对 Python 第三方生态的直观理解。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。