直接运行pip install imbalanced-learn虽可安装,但易因环境差异导致依赖冲突:windows用户应优先用conda创建独立环境并从conda-forge安装;macos/linux用户需锁定scikit-learn==1.0.2与imbalanced-learn==0.8.1版本;notebook中须用%pip命令并重启内核,且所有采样器统一使用fit_resample()而非fit_transform()。

直接运行 pip install imbalanced-learn 就能装好,但不同环境容易卡在依赖或版本上,得看你是 Windows、macOS/Linux 还是 notebook 环境。
Windows 用户:别用 base 环境,优先走 conda
conda 创建干净环境能避开 90% 的 DLL 冲突和 numpy 编译失败:
conda create -n imb python=3.8conda activate imbconda install -c conda-forge imbalanced-learn
不用 pip 是因为 Windows 下 pip 编译 C 扩展(比如 imblearn 依赖的 scipy)经常失败;conda-forge 的二进制包已预编译好,省心。
macOS / Linux 用户:pip 可行,但要锁版本
如果你坚持用 pip(比如服务器没 conda),必须指定兼容版本,否则可能和 scikit-learn 冲突:
- 先升级 pip:
python -m pip install --upgrade pip - 再装带版本约束的组合:
pip install scikit-learn==1.0.2 imbalanced-learn==0.8.1
原因:imblearn 0.8.1 是目前对 sklearn 1.0.x 支持最稳的版本;装最新版 imbalanced-learn 可能因 API 变动报 AttributeError: 'SMOTE' object has no attribute 'fit_resample'。
Jupyter / Fabric / Databricks notebook:用 magic 命令且重启内核
在 notebook 里不能只写 import imblearn 再 pip —— 安装后 kernel 不自动 reload:
- 第一格必须写:
%pip install imbalanced-learn - 执行完,kernel 会提示 “Restarting Python kernel…”(某些平台需手动重启)
- 第二格才能安全
from imblearn.over_sampling import SMOTE
漏掉重启,会报 ModuleNotFoundError: No module named 'imblearn',不是安装失败,是 Python 进程没加载新包。
最容易被忽略的一点:装完别急着跑 SMOTE().fit_transform() —— imblearn 所有采样器只认 fit_resample(),用错接口会静默返回 shape 错误的数组,模型训练时才爆 ValueError: X.shape[0] != y.shape[0]。











