【jupyter 使用多进程方案】

可选择的方案:

  1. pathos.multiprocessing
  2. joblib.Parallel

来写的 Jupyter Notebook 兼容版本 示例。


✅ 方法一:使用 pathos.multiprocessing(Jupyter友好)

python 复制代码
from pathos.multiprocessing import ProcessingPool as Pool
from tqdm import tqdm

def process_image(img_path, output_path):
    # 你的图像处理逻辑,比如保存图像到 output_path
    # 示例代码如下(请根据你实际处理内容修改):
    from PIL import Image
    img = Image.open(img_path)
    img.save(output_path)
    return output_path

# 构造参数列表(每个是一个元组)
args = [(img_path, output_path / img_path.name) for img_path in img_paths]

# 初始化 Pool 并并行处理
pool = Pool()  # 默认使用 CPU 核心数

# tqdm 不支持 map 直接用,写成 list
results = list(tqdm(pool.uimap(lambda args: process_image(*args), args), total=len(args)))

🔑 特点:

  • 支持在 Jupyter 中直接运行;
  • 不需要 if __name__ == "__main__"
  • 支持传多个参数(通过 *args 拆包);
  • 使用 uimap() 可以有 tqdm 进度条(imap 带顺序,map 会等全部完成)。

✅ 方法二:使用 joblib.Parallel(适合CPU密集,稳定)

python 复制代码
from joblib import Parallel, delayed
from tqdm import tqdm

def process_image(img_path, output_path):
    from PIL import Image
    img = Image.open(img_path)
    img.save(output_path)
    return output_path

# tqdm 进度条用在参数上
results = Parallel(n_jobs=-1)(
    delayed(process_image)(img_path, output_path / img_path.name)
    for img_path in tqdm(img_paths)
)

🔑 特点:

  • n_jobs=-1 表示使用所有可用核心;
  • 同样支持多个参数;
  • 在 Jupyter 运行稳定,依赖 loky 后端;
  • 避免了 pickle 报错。

📦 安装依赖

如果你没有安装 pathosjoblib

bash 复制代码
pip install pathos joblib

✅ 总结对比

特性 pathos joblib
Jupyter兼容
多参数传递 ✅(tuple 拆包) ✅(delayed(f)(...)
支持 tqdm ✅(配合 uimap ✅(在 for 循环外)
稳定性/文档支持 中(社区较活跃) 高(广泛用于 sklearn 等)
推荐使用场景 函数自由写、调试方便 大批量 CPU 密集任务
相关推荐
百锦再13 分钟前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
zbhbbedp282793cl2 小时前
如何在VSCode中安装Python扩展?
ide·vscode·python
Python私教4 小时前
Python 开发环境安装与配置全指南(2025版)
开发语言·python
百锦再4 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang
熠熠仔4 小时前
QGIS 3.34+ 网络分析基础数据自动化生成:从脚本到应用
python·数据分析
测试19985 小时前
Appium使用指南与自动化测试案例详解
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
神仙别闹5 小时前
基于 C++和 Python 实现计算机视觉
c++·python·计算机视觉
hongjianMa6 小时前
【论文阅读】Hypercomplex Prompt-aware Multimodal Recommendation
论文阅读·python·深度学习·机器学习·prompt·推荐系统
饼干,6 小时前
第23天python内容
开发语言·python
酷柚易汛智推官7 小时前
基于librespot的定制化Spotify客户端开发:开源替代方案的技术实践与优化
python·开源·酷柚易汛