Python新手必学的10个常用库清单

听雨眠
听雨眠
发布时间:2026-11-14| 7人浏览过
原创

精选Python初学者必学的10个高频第三方常用库,涵盖网络请求、数据分析、自动化办公、工程测试与Web交互等场景,配有核心代码示例、机制对比与全景学习路线。

掌握了变量、分支、循环和函数等Python基础语法后,初学者的核心瓶颈往往不再是语言语法本身,而是面对真实需求时缺乏高效现成的工具。Python强大的生态在于其海量的第三方库。本文精选了覆盖网络交互、数据处理、办公自动化、系统工具与Web工程等五大高频应用场景的10个基础且高频的常用库,帮助新手理清工具定位、掌握核心用法并建立结构化的学习路径。

一、标准流程:第三方库的安装与规范验证

在Python中引入第三方库有标准化的操作周期。新手常犯的错误是混淆Python内置标准库与第三方库,或在全局环境中随意执行安装导致依赖冲突。推荐的规范做法是在专属的虚拟环境中通过包管理器 pip 获取,并使用简单的脚本验证导入状态。

Python新手必学的10个常用库清单
图1:Python 第三方库规范安装与测试流程

如果执行 import <package> 时系统抛出 ModuleNotFoundError,说明终端中运行的 Python 解释器与执行 pip install 的环境并非同一个路径。养成激活虚拟环境的习惯,是避免依赖混乱的关键第一步。

二、核心库清单与代码实践

1. Requests:优雅的人性化 HTTP 网络请求库

定位与场景:进行网络爬虫、调用第三方 RESTful API 或抓取公开接口数据时,Requests 是 Python 社区的事实标准。相比 Python 自带的 urllib,Requests 将编码处理、连接池复用、Cookie 管理和请求头配置抽象为简洁直观的方法。

import requests

url = "https://httpbin.org/get"
params = {"keyword": "python", "page": 1}
headers = {"User-Agent": "MyTestApp/1.0"}

response = requests.get(url, params=params, headers=headers, timeout=5)
print("HTTP状态码:", response.status_code)
if response.status_code == 200:
    data = response.json()
    print("返回的请求参数:", data.get("args"))
避坑提示:调用 requests.get() 或 requests.post() 时务必显式传入 timeout 参数(例如 timeout=5),否则一旦目标服务端无响应,程序将无限期挂起。

2. Beautiful Soup 4:HTML 与 XML 结构化解析库

定位与场景:从网页抓取回 HTML 源码后,单纯使用正则表达式提取文字极易因标签嵌套和换行断裂出错。Beautiful Soup 4(简称 bs4)通过构建 DOM 树,支持以标签名、CSS 类选择器或属性快速查找目标元素。

from bs4 import BeautifulSoup

html_doc = """
<div class="content">
  <h1>文章标题</h1>
  <ul class="item-list">
    <li><a href="/post/1">Python基础入门</a></li>
    <li><a href="/post/2">常用标准库指南</a></li>
  </ul>
</div>
"""

soup = BeautifulSoup(html_doc, "html.parser")
title = soup.find("h1").get_text()
print("提取标题:", title)

# 使用 CSS 选择器获取所有列表超链接
links = soup.select(".item-list li a")
for link in links:
    print("标题:", link.text, "URL:", link.get("href"))

3. NumPy:科学计算与多维数组处理的核心基石

定位与场景:NumPy 提供了高性能的 N 维数组对象 ndarray 以及丰富的数学函数库。它是整个 Python 数据科学与人工智能技术栈(Pandas、SciPy、PyTorch、TensorFlow)的底层支撑。

关键差异解析:NumPy ndarray 与 Python 原生 List

初学者常疑问:Python 原生已有 list,为何还要引入 NumPy?两者的根本差异在于内存组织方式与计算机制:

  • 内存布局:Python 原生 list 存储的是对象的指针数组,列表中每个元素是一个独立的完整 Python 对象,在内存中离散分布;NumPy 的 ndarray 则是要求同质类型(如 int32、float64)的一整块连续物理内存。
  • 运算机制:对原生 list 进行数值倍增时,必须依靠 Python 解释器在字节码层面进行逐个循环解包;NumPy 则借助底层的 C 语言实现矢量化运算(SIMD 指令),直接对连续整块内存执行并行批量计算,计算效率通常高出原生列表数十倍至上百倍。
Python新手必学的10个常用库清单
图2:Python 原生列表(指针解引用)与 NumPy 连续数组结构对比
import numpy as np

# 创建一维与二维数组
arr = np.array([10, 20, 30, 40])
print("原数组:", arr)

# 矢量化运算:无需写 for 循环
arr_doubled = arr * 2
print("乘以2结果:", arr_doubled)

# 基础统计分析
print("平均值:", np.mean(arr))
print("标准差:", np.std(arr))

4. Pandas:表格数据清洗与结构化分析利器

定位与场景:如果说 NumPy 类似于多维矩阵底座,那么 Pandas 就是运行在 Python 上的全功能“可编程 Excel”。其核心数据结构 DataFrame 能够轻松处理 CSV、Excel、数据库查询等带有列名和行索引的结构化二维表。

import pandas as pd

# 从字典快速构建二维表格 DataFrame
data = {
    "姓名": ["张伟", "李芳", "王强", "赵敏"],
    "部门": ["技术部", "市场部", "技术部", "财务部"],
    "薪资": [12000, 9500, 15000, 11000]
}
df = pd.DataFrame(data)

# 条件过滤
tech_staff = df[df["部门"] == "技术部"]
print("技术部员工:\n", tech_staff)

# 分组聚合统计
avg_salary = df.groupby("部门")["薪资"].mean()
print("\n部门平均薪资:\n", avg_salary)

5. Matplotlib:经典可靠的数据图表绘制库

定位与场景:数据分析的最后一步是成果呈现。Matplotlib 是 Python 最经典的绘图库。无论是折线图、柱状图、散点图还是直方图,都可以通过面向对象风格的 API 进行精细到像素级的样式定制。

import matplotlib.pyplot as plt

# 准备展示数据
months = ["1月", "2月", "3月", "4月", "5月"]
sales = [120, 145, 180, 160, 210]

# 创建画布与子图对象
fig, ax = plt.subplots(figsize=(8, 4.5))
ax.plot(months, sales, marker="o", color="#687D8D", linewidth=2, label="月销量(万件)")
ax.set_title("上半年商品销售趋势", fontsize=14)
ax.set_xlabel("月份")
ax.set_ylabel("销量")
ax.grid(True, linestyle="--", alpha=0.5)
ax.legend()

# 保存图表为本地图片
plt.savefig("sales_trend.png", dpi=150, bbox_inches="tight")
plt.close()

6. OpenPyXL:日常 Office 办公自动化之 Excel 处理

定位与场景:在日常企业办公中,批量处理 .xlsx 格式的 Excel 表格是自动化需求的高频重灾区。OpenPyXL 允许在不启动外部 Excel 进程的前提下,自由读写单元格内容、设置边框字体、处理公式与合并单元格。

import openpyxl

# 创建新工作簿并激活当前页
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "汇总报表"

# 写入表头与内容
ws.append(["订单编号", "商品名称", "数量", "单价"])
ws.append(["A1001", "机械键盘", 2, 299])
ws.append(["A1002", "无线鼠标", 5, 89])

# 使用公式计算总金额
ws["E1"] = "总价"
ws["E2"] = "=C2*D2"
ws["E3"] = "=C3*D3"

wb.save("sales_summary.xlsx")
print("Excel 文件已生成!")

7. Pillow (PIL Fork):轻量易用的图像处理库

定位与场景:需要对用户上传的头像切图、压缩缩略图、批量加水印或调整图片亮度和滤镜时,Pillow 是首选方案。它轻量敏捷,开箱即用,不需要安装重量级计算机视觉库(如 OpenCV)所带来的庞大编译依赖。

from PIL import Image, ImageFilter

# 读取图片并查看基本信息
with Image.open("example.jpg") as img:
    print(f"原图尺寸: {img.size}, 格式: {img.format}")

    # 生成 300x300 的等比缩略图
    img.thumbnail((300, 300))
    
    # 应用轻度高斯模糊滤镜并另存
    blurred_img = img.filter(ImageFilter.GaussianBlur(radius=2))
    blurred_img.save("thumbnail_blurred.jpg", "JPEG")

8. Pytest:现代自动化测试与断言框架

定位与场景:写出可工作的代码只是第一步,保证代码在长期迭代中不退化需要测试。Python 自带的 unittest 语法冗长繁复;而 pytest 倡导极简风格:只需直接使用 Python 原生的 assert 关键字,免去继承特定类或记住大量专门断言函数(如 assertEqual)的负担。

# 文件名:test_calculator.py

def add(a, b):
    return a + b

def divide(a, b):
    if b == 0:
        raise ValueError("除数不能为0")
    return a / b

# 直接编写测试函数,使用原生 assert
def test_add_success():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0

def test_divide_exception():
    import pytest
    with pytest.raises(ValueError):
        divide(10, 0)

在终端中直接运行 pytest,框架会自动发现当前目录下所有以 test_*.py 命名的文件并执行测试输出易读的测试报告。

9. Flask:轻量级 Web 服务与 API 开发框架

定位与场景:当需要对外提供一个 HTTP 接口、将本地训练的模型或算法打包成服务端点供前端调用时,重量级的 Django 往往显得配置繁重。Flask 属于微框架架构,新手只需不到 10 行代码即可启动一个具备路由分发能力的 Web 服务器。

from flask import Flask, jsonify, request

app = Flask(__name__)

# 定义一个处理 GET 请求的路由
@app.route("/api/greet", methods=["GET"])
def greet():
    name = request.args.get("name", "Guest")
    return jsonify({
        "status": "success",
        "message": f"Hello, {name}!",
        "version": "1.0"
    })

if __name__ == "__main__":
    # 本地开发模式启动服务
    app.run(host="127.0.0.1", port=5000, debug=True)

10. Rich:现代终端格式化输出与调试利器

定位与场景:在初学阶段,控制台输出是唯一的调试途径。大量生硬的 print() 打印常常导致终端杂乱无序。Rich 支持向控制台输出颜色高亮文本、格式化表格、进度条以及漂亮的 Python 异常追踪栈。

from rich.console import Console
from rich.table import Table

console = Console()

# 彩色样式打印
console.print("[bold green]操作执行成功![/bold green] 系统正在启动...")

# 格式化终端表格
table = Table(title="服务器状态监测")
table.add_column("服务节点", justify="center", style="cyan")
table.add_column("运行状态", style="green")
table.add_column("CPU负载", justify="right", style="magenta")

table.add_row("Node-01", "Active", "23.4%")
table.add_row("Node-02", "Active", "45.1%")
console.print(table)

三、进阶路线:初学者的技能树演进

掌握了这 10 个库并不意味着要同时在单个项目中使用它们。学习 Python 库应当遵循循序渐进的阶段节奏:先掌握开发调试和网络基础,再进入任务自动化与数据清洗,最后迈向工程化测试与服务化交付。

Python新手必学的10个常用库清单
图3:Python 常用库进阶学习路径示意

四、全景归纳与快速选型参考

为了让读者在面对具体任务时能够迅速定位工具,下表汇总了这 10 个常用库的安装命令、核心应用领域与推荐场景:

常用库 核心功能定位 安装命令 典型应用场景 新手难度
Requests HTTP 客户端 pip install requests 网页请求、RESTful API 交互 入门
Beautiful Soup 4 HTML 解析器 pip install beautifulsoup4 网络爬虫、网页标签与文本抽取 入门
NumPy 数值与矩阵运算 pip install numpy 高维数据计算、底层算法支持 进阶
Pandas 结构化数据分析 pip install pandas CSV/Excel 清洗、分组统计、过滤 进阶
Matplotlib 数据可视化 pip install matplotlib 折线图、柱状图、散点图生成 中等
OpenPyXL Excel 办公自动化 pip install openpyxl .xlsx 读写、自动填表、样式公式 入门
Pillow 图像批处理 pip install pillow 生成缩略图、图像裁剪、水印添加 入门
Pytest 自动化单元测试 pip install pytest 编写断言用例、代码回归防护 中等
Flask 轻量 Web 服务 pip install flask 微服务、前后端接口暴露、快速原型 中等
Rich 终端美化与调试 pip install rich 控制台输出表格、进度条与日志排版 入门
Python新手必学的10个常用库清单
图4:10大核心常用库五大领域全景归类与应用定位

五、总结与初学者避坑建议

掌握这 10 个库的意义并不在于背诵它们的每一个 API,而是在面对具体业务问题时能够快速建立映射关系:要读网页用 Requests + BeautifulSoup,要整理杂乱表格用 Pandas,要实现 Excel 自动化用 OpenPyXL,要写服务用 Flask,要排查异常用 Rich 与 Pytest。

在后续的实践开发中,建议牢记以下原则:

  • 严禁全局乱装包:始终为新项目单独建立 .venv 虚拟环境,并使用 pip freeze > requirements.txt 固化版本。
  • 官方文档优先:第三方库更新迭代迅速,网络上的二手教程容易过时失效。遇到参数疑问时,优先翻阅其官方文档中的 Quickstart 部分。
  • 由浅入深按需引入:不要在初期为了“追求高端”而把所有库一股脑引入代码中,从最简单的单文件脚本开始,逐步扩展架构。

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

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 算法库。