Python新手必装的10个常用库:从requests到pandas

竹里
竹里
发布时间:2026-11-09| 12人浏览过
原创

本文梳理Python新手在实际开发中最常接触的10个高频第三方库,涵盖网络请求、网页解析、数据分析、办公自动化与工程测试等核心场景,提供具体安装命令、典型代码范式及避坑指南。

Python新手必装的10个常用库:从requests到pandas
图 0:Python 常用库生态与工具链总览
技术教程
分类:Python 开发与数据处理 阅读时长:约 10 分钟 适用环境:Python 3.8+
Python 官方标准库功能完备,但在处理实际业务时,自行用标准库拼装网络请求、解析 HTML、处理二维数据表或读写 Excel 往往需要编写大量冗长代码。安装成熟的第三方库是降低上手门槛、提高代码健壮性的核心途径。本文直接梳理新手阶段最常用、工程验证度最高的 10 个第三方库,覆盖从数据获取(requests、beautifulsoup4)、数据处理(numpy、pandas)、可视化呈现(matplotlib)、日常自动化(openpyxl、pillow)到工程辅助(rich、pytest、python-dotenv)的完整工具链,并提供明确的标准安装流程与可执行示例。

准备工作:使用虚拟环境管理第三方依赖

在安装任何第三方库之前,直接向系统全局 Python 环境执行 pip install 是新手最容易犯的错误。全局安装会导致不同项目之间的版本相互冲突,甚至可能破坏操作系统的依赖。标准的工程实践是在项目根目录创建并激活独立的虚拟环境(virtual environment)。

Python新手必装的10个常用库:从requests到pandas
图 1:Python 虚拟环境隔离与依赖管理标准四步流程

执行以下命令即可在本地完成独立环境的初始化与激活:

# 1. 在当前项目目录下创建名为 .venv 的虚拟环境
python3 -m venv .venv

# 2. 激活虚拟环境
# macOS / Linux 系统:
source .venv/bin/activate
# Windows PowerShell:
# .venv\Scripts\Activate.ps1

# 3. 升级 pip 并验证当前环境
python -m pip install --upgrade pip
which python  # Windows 下使用 where python
【示例输出】确认当前运行环境位于虚拟目录中:
/Users/project/.venv/bin/python
Successfully upgraded pip to 24.x
注意事项:虚拟环境激活后,终端提示符前通常会显式出现 (.venv) 字样。完成所有库的安装后,可通过 pip freeze > requirements.txt 锁定版本清单,后续只需执行 pip install -r requirements.txt 即可在另一台电脑上一键复现相同环境。

10大常用库的技术定位与领域划分

面对庞大的 PyPI 生态,盲目安装库会徒增维护成本。根据实际任务的目标,这 10 个库可以归入四个清晰的功能域:网络与数据采集、科学计算与数据分析、文件与多媒体处理,以及工程开发与调试测试。

Python新手必装的10个常用库:从requests到pandas
图 2:新手必装 10 大常用库的功能定位与生态划分图解
1. requests:优雅直观的 HTTP 网络请求库 pip install requests

Python 原生内置了 urllib.request,但其接口设计相对繁琐,处理 Cookie、编码推断以及 POST 参数时需要繁重的样板代码。requests 将复杂的底层传输封装为极度贴合人类阅读习惯的 API,是与后端接口通信、抓取网页数据的首选。

import requests

url = "https://httpbin.org/get"
params = {"category": "tutorial", "lang": "zh"}

try:
    # 强烈建议显式指定 timeout 超时时间(单位:秒)
    response = requests.get(url, params=params, timeout=5)
    # 若返回状态码不是 200,将主动抛出 HTTPError 异常
    response.raise_for_status()
    
    # 自动解析 JSON 响应体
    data = response.json()
    print("请求URL:", data.get("url"))
    print("客户端携带参数:", data.get("args"))
except requests.exceptions.RequestException as err:
    print("网络请求失败:", err)
【示例输出】
请求URL: https://httpbin.org/get?category=tutorial&lang=zh
客户端携带参数: {'category': 'tutorial', 'lang': 'zh'}
易踩坑点:千万不要忽略 timeout 参数。若不指定超时时间,遇到对方服务器无响应或网络中断时,Python 进程会默认无限期阻塞挂起。
2. beautifulsoup4:网页结构与 DOM 数据抽取 pip install beautifulsoup4

当通过 requests 拿到包含 HTML 源码的文本后,正则表达式并不适合解析嵌套深且容错要求高的网页结构。BeautifulSoup(常简写为 bs4)能够自动将凌乱的 HTML 修复并构建为树状节点对象,支持通过标签名、CSS 类名和属性灵活查找目标内容。

from bs4 import BeautifulSoup

html_doc = """
<div class="content">
  <h1 class="title">文章列表</h1>
  <ul class="articles">
    <li><a href="/item/1" class="item">Python基础</a></li>
    <li><a href="/item/2" class="item">Pandas数据清洗</a></li>
  </ul>
</div>
"""

soup = BeautifulSoup(html_doc, "html.parser")

# 定位标题内容
title_text = soup.find("h1", class_="title").get_text()
print("页面主标题:", title_text)

# 抓取全部超链接与文本
for link in soup.find_all("a", class_="item"):
    print(f"条目名称: {link.get_text()} | 目标地址: {link.get('href')}")
【示例输出】
页面主标题: 文章列表
条目名称: Python基础 | 目标地址: /item/1
条目名称: Pandas数据清洗 | 目标地址: /item/2
易踩坑点:在 Python 中 class 是保留关键字,因此根据 CSS 类名查找时必须使用 class_="item"(带下划线),否则会触发语法错误。
3. numpy:多维数组运算与科学计算基石 pip install numpy

原生 Python 列表(List)是通用动态对象,元素类型各异且分散存储在内存各处,在处理数十万个数值计算时效率较低。NumPy 提供了内存连续排布的 ndarray 对象以及底层由 C 编写的高性能矢量化运算,是 pandas、scikit-learn 以及众多深度学习框架不可或缺的底层依赖。

import numpy as np

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

# 向量化运算:无需写 for 循环即可对整体进行批处理(如加收 10% 服务费)
adjusted_sales = sales * 1.1

print("原销售数据:", sales)
print("上浮后数据:", np.round(adjusted_sales, 1))
print(f"均值: {np.mean(sales)} | 标准差: {np.std(sales):.2f} | 最大值: {np.max(sales)}")
【示例输出】
原销售数据: [120 150  90 200 180]
上浮后数据: [132.  165.   99.  220.  198. ]
均值: 148.0 | 标准差: 38.68 | 最大值: 200
易踩坑点:尽量避免将 ndarray 放入 Python 的原生 for 循环中逐项累加,这会丧失底层 C 语言向量化带来的性能优势。
4. pandas:二维结构化数据分析与清洗利器 pip install pandas

如果说 requests 解决了“数据从哪里来”,那么 pandas 解决的就是“数据如何整理与分析”。它核心的 DataFrame 类似一张功能强大的内存 Excel 表,内置了过滤、切片、空值填补、透视以及分组汇总(groupby)等高级数据操作能力。

import pandas as pd

# 模拟原始业务数据
records = [
    {"dept": "技术部", "name": "张三", "salary": 16000, "city": "北京"},
    {"dept": "市场部", "name": "李四", "salary": 11000, "city": "上海"},
    {"dept": "技术部", "name": "王五", "salary": 18500, "city": "北京"},
    {"dept": "市场部", "name": "赵六", "salary": 12500, "city": "深圳"},
    {"dept": "运营部", "name": "孙七", "salary": 9500, "city": "上海"},
]

df = pd.DataFrame(records)

# 1. 过滤:筛选薪资大于 12000 的员工
high_earners = df[df["salary"] > 12000]

# 2. 聚合:按部门统计人数与平均薪资
summary = df.groupby("dept")["salary"].agg(["count", "mean"]).reset_index()
summary.rename(columns={"count": "人数", "mean": "平均薪资"}, inplace=True)

print("--- 薪资汇总表 ---")
print(summary.to_string(index=False))
【示例输出】
--- 薪资汇总表 ---
 dept  人数    平均薪资
 市场部   2 11750.0
 运营部   1  9500.0
 技术部   2 17250.0
易踩坑点:在对 DataFrame 进行筛选并直接修改某列值时,容易遇到 SettingWithCopyWarning 警告。进行衍生计算前,建议显式调用 .copy() 以区分视图与深拷贝。

数据流转闭环:从请求采集到图表落盘

单独了解一个库的作用通常并不足以解决复杂的业务问题。在实际开发中,这些库往往是紧密配合的流水线:先用 requests 拿到网络响应,用 BeautifulSoup 提取成结构化字典列表,送入 pandas 清洗计算,最后由 matplotlib 生成可视化报表图。

Python新手必装的10个常用库:从requests到pandas
图 3:核心数据流转链路(从网络请求、清洗分析到结果呈现)
5. matplotlib:专业灵活的基础图表可视化 pip install matplotlib

清洗整理好的数据需要直观向外展示。matplotlib(主要是其 pyplot 子模块)是 Python 中最稳健的基础绘图库,支持生成折线图、柱状图、散点图以及热力图,并能高质量导出为 PNG、PDF 或 SVG 格式。

import matplotlib.pyplot as plt

# 样本数据
months = ["1月", "2月", "3月", "4月", "5月"]
sales_volume = [120, 185, 140, 210, 260]

# 创建画布与子图
fig, ax = plt.subplots(figsize=(6, 3.5), dpi=100)

# 绘制折线与数据标记
ax.plot(months, sales_volume, marker="o", color="#52677D", linewidth=2, label="月销量")
ax.set_title("上半年产品月度销售趋势", fontsize=12)
ax.set_xlabel("月份")
ax.set_ylabel("销量 (万件)")
ax.grid(True, linestyle="--", alpha=0.5)
ax.legend()

# 保存图像至本地并关闭画布资源
plt.tight_layout()
plt.savefig("sales_trend.png")
plt.close()
print("图表已成功保存为 sales_trend.png")
【示例输出】
图表已成功保存为 sales_trend.png
易踩坑点:在服务器无图形界面(Headless)环境运行时,有时会因缺少 GUI 后端导致报错,可在导入 pyplot 前配置无交互后端:import matplotlib; matplotlib.use('Agg')。
6. openpyxl:原生 Excel 电子表格自动化读写 pip install openpyxl

日常办公中最常见的交付文件格式是 .xlsx。openpyxl 允许我们在未安装 Microsoft Office 的机器上,直接对 Excel 工作表进行精细化读写、公式填充和字体样式配置。

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill

# 创建新的 Excel 工作簿
wb = Workbook()
ws = wb.active
ws.title = "季度业绩表"

# 写入表头并设置样式
headers = ["销售人员", "第一季度", "第二季度", "合计"]
ws.append(headers)

header_font = Font(name="微软雅黑", size=11, bold=True, color="FFFFFF")
header_fill = PatternFill(start_color="52677D", end_color="52677D", fill_type="solid")

for col_idx in range(1, len(headers) + 1):
    cell = ws.cell(row=1, column=col_idx)
    cell.font = header_font
    cell.fill = header_fill
    cell.alignment = Alignment(horizontal="center")

# 追加数据行与 Excel 原生求和公式
ws.append(["李雷", 35000, 42000, "=SUM(B2:C2)"])
ws.append(["韩梅梅", 48000, 51000, "=SUM(B3:C3)"])

wb.save("季度业绩表.xlsx")
print("Excel 文件已生成:季度业绩表.xlsx")
【示例输出】
Excel 文件已生成:季度业绩表.xlsx
易踩坑点:openpyxl 专注于较新的 Office Open XML 格式(.xlsx),若需要读写极早期的 .xls 二进制文件,需使用 xlrd 或 xlwt。
7. pillow:简明实用的数字图像处理与转换 pip install pillow

在批量处理图片缩略图、调整分辨率或加盖水印时,直接使用庞大的 OpenCV 往往显得过重。Pillow(代码中导入为 PIL)支持数十种图像格式的读写、缩放、裁剪和色彩模式转换。

from PIL import Image

# 构造一个 200x200 像素的纯色测试图(RGB模式)
img = Image.new("RGB", (200, 200), color=(82, 103, 125))

# 等比例缩放为 100x100 的缩略图
img.thumbnail((100, 100))

# 转换格式并保存
img.save("thumbnail.jpg", "JPEG", quality=90)
print(f"图像生成完毕,尺寸: {img.size},格式: {img.format}")
【示例输出】
图像生成完毕,尺寸: (100, 100),格式: JPEG
易踩坑点:安装时的包名是 pip install pillow,而在 Python 代码中导入时必须使用 from PIL import Image,这是由于历史兼容原因保留的模块命名。
8. rich:极富表现力的终端控制台渲染 pip install rich

很多新手调试程序全靠原生 print(),当输出复杂的字典或列表时,控制台密密麻麻难以辨认。rich 支持在终端输出彩色文字、Markdown 格式、优雅的表格、JSON 高亮以及进度条,能够极大提升命令行交互与开发调试效率。

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("API Gateway", "8080", "[green]Running[/green]")
table.add_row("Task Worker", "9090", "[green]Running[/green]")
table.add_row("Cache Redis", "6379", "[red]Down[/red]")

console.print(table)
【示例输出】(终端中呈现为色彩分明的高对比度边框表格)
       服务运行状态监控       
┏━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━┓
┃ 服务名称     ┃ 端口 ┃ 健康状态 ┃
┡━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━┩
│ API Gateway  │ 8080 │ Running  │
│ Task Worker  │ 9090 │ Running  │
│ Cache Redis  │ 6379 │ Down     │
└──────────────┴──────┴──────────┘
9. pytest:极简现代的单元测试与断言框架 pip install pytest

代码是否真正正常工作,不能仅靠肉眼观察控制台打印。Python 内置的 unittest 要求编写类并继承指定基类,写法繁琐。pytest 允许直接编写普通的函数,直接使用原生的 assert 关键字,并能自动发现项目中所有以 test_*.py 命名的测试用例。

# 业务函数与对应测试用例(保存为 test_math_util.py)
def calc_discount(price: float, discount: float) -> float:
    if discount <= 0 or discount > 1:
        raise ValueError("折扣必须在 0 到 1 之间")
    return round(price * discount, 2)

def test_calc_discount_normal():
    # 使用原生 assert,断言失败时 pytest 会智能打印变量差值
    assert calc_discount(100.0, 0.8) == 80.0
    assert calc_discount(250.0, 0.75) == 187.5

def test_calc_discount_invalid():
    import pytest
    with pytest.raises(ValueError):
        calc_discount(100.0, 1.5)
【执行测试命令与示例输出】在命令行执行:pytest -v
==================== test session starts ====================
collected 2 items

test_math_util.py::test_calc_discount_normal PASSED   [ 50%]
test_math_util.py::test_calc_discount_invalid PASSED  [100%]

==================== 2 passed in 0.02s ====================
10. python-dotenv:环境变量与敏感配置隔离 pip install python-dotenv

将数据库密码、API Key 等机密信息硬编码进代码是非常危险的行为,一旦代码提交至 Git 仓库就会造成凭据泄露。python-dotenv 允许在项目根目录创建一个不提交给 Git 的 .env 文件,并在代码启动时自动将其注入到系统环境变量中。

# 1. 本地根目录下创建 .env 文件,写入如下键值:
# DATABASE_URL=mysql://admin:secret123@localhost:3306/prod
# API_SECRET=sk-998877665544332211

import os
from dotenv import load_dotenv

# 加载当前目录下的 .env 文件
load_dotenv()

# 通过 os.getenv 统一安全读取配置
db_url = os.getenv("DATABASE_URL", "sqlite:///default.db")
api_key = os.getenv("API_SECRET")

print("数据库连接串:", db_url)
print("密钥已加载:", bool(api_key))
【示例输出】
数据库连接串: mysql://admin:secret123@localhost:3306/prod
密钥已加载: True
易踩坑点:务必在项目的 .gitignore 文件中显式添加 .env,严防配置文件被随手提交到远程代码托管平台。

任务驱动选型指南与常见问题速查

初学者面对不同场景时,常会纠结具体使用哪个库。以下决策表列举了常见业务任务与最优解库的对照匹配:

Python新手必装的10个常用库:从requests到pandas
图 4:常见开发场景首选库匹配与注意事项速查表

新手高频疑问与实操建议

  1. 这么多库,需要一次性全部安装吗?
    不建议一次性全部安装。虽然这 10 个库体积相对适中,但最佳做法始终是根据当前项目需求逐步引入。例如编写爬虫时仅需 pip install requests beautifulsoup4;处理报表数据时再装 pandas openpyxl。
  2. 安装包时下载特别慢甚至超时,如何解决?
    这通常是因为访问官方海外源网络受限。可以配置国内镜像源来加速下载,例如临时指定镜像源安装:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
  3. 为什么在代码里 import 会提示 ModuleNotFoundError?
    十有八九是因为运行代码的 Python 解释器与执行 pip 安装的解释器不是同一个。务必检查当前终端是否已激活对应的 (.venv) 虚拟环境,并使用 which python 与 which pip 核对路径一致性。

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

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