この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: インストール方法(Linux)
SEOタイトル: Linux への scikit-learn インストール (pip / venv / Conda / 依存パッケージ)

この記事の要点
  • 定石: python3 -m venv .venv && source .venv/bin/activate && pip install scikit-learn
  • システム Python に直接 pip install汚染リスクあり → 必ず venv / conda
  • Conda 利用なら: conda install -c conda-forge scikit-learn
  • 依存: numpy / scipy / joblib / threadpoolctl。pip が自動で入れる
  • ARM64 (Raspberry Pi / Mac on Linux VM) も wheel が配布されており簡単
  • GPU 版は存在しない。GPU で機械学習したいなら XGBoost (GPU) / NVIDIA RAPIDS cuML を検討

結論: 推奨手順

# 1. Python 確認 (3.9 以上が望ましい)
python3 --version

# 2. 仮想環境作成
python3 -m venv .venv
source .venv/bin/activate

# 3. pip 最新化
python -m pip install --upgrade pip

# 4. scikit-learn インストール
pip install scikit-learn

# 5. 確認
python -c "import sklearn; print(sklearn.__version__)"
# → 1.5.0 など

なぜ venv (仮想環境) が必要か

Linux のシステム Python は OS や他ツールが使っているため、グローバルに pip install するとシステム破壊や依存衝突を起こします。Ubuntu 23.04+ ではそもそも pip installexternally-managed-environment エラーで弾かれます。

# ❌ システム Python 直 (Ubuntu 23.04+ では弾かれる)
pip install scikit-learn
# error: externally-managed-environment

# ✅ 必ず venv
python3 -m venv ~/.venvs/ml
source ~/.venvs/ml/bin/activate
pip install scikit-learn

# ✅ または pipx (CLI ツール用)
pipx install scikit-learn

ディストリビューション別の準備

Ubuntu / Debian

# Python と venv モジュール
sudo apt update
sudo apt install -y python3 python3-venv python3-pip

# BLAS / LAPACK は wheel 同梱なので追加不要
# ソースビルドする場合のみ
sudo apt install -y python3-dev build-essential libopenblas-dev liblapack-dev

# venv + scikit-learn
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install scikit-learn pandas matplotlib jupyterlab

RHEL / CentOS / Rocky Linux

sudo dnf install -y python3 python3-pip python3-virtualenv

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install scikit-learn

Alpine Linux

# Alpine は musl libc のため、wheel が無い場合はビルドが走る
apk add python3 py3-pip py3-virtualenv
apk add gcc g++ musl-dev linux-headers openblas-dev lapack-dev

python3 -m venv /opt/venv
source /opt/venv/bin/activate
pip install --upgrade pip
pip install scikit-learn   # 数分〜10分のビルドが入る場合あり

Conda 経由 (Anaconda / Miniconda / Mamba)

データサイエンス用途では Conda が最も簡単です。BLAS / LAPACK を Conda が同梱の最適化版で配布するため、計算も速くなりやすいです。

# Miniconda インストール (Linux x86_64)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# 環境作成
conda create -n ml python=3.11
conda activate ml

# インストール (conda-forge 推奨)
conda install -c conda-forge scikit-learn pandas matplotlib jupyterlab

# 確認
python -c "import sklearn; print(sklearn.__version__)"

依存パッケージ

パッケージ役割備考
numpy多次元配列必須
scipy科学計算必須
joblib並列処理 / モデル永続化必須
threadpoolctlBLAS スレッド制御必須
pandasDataFrame★ 実務ではほぼ必須
matplotlib可視化推奨
seaborn統計可視化任意
jupyterlabノートブック強く推奨
pip install scikit-learn pandas matplotlib seaborn jupyterlab

ARM64 (Raspberry Pi / Apple Silicon Linux VM)

scikit-learn は ARM64 用の wheel を PyPI に公開しているため、Pi 4 / Pi 5 / Ampere / Apple Silicon の Linux VM でも特別な作業なくインストールできます。古い Pi (armv7) のみソースビルドが走ります。

# Raspberry Pi 64-bit OS
sudo apt install -y python3-venv python3-pip
python3 -m venv ~/.venvs/ml
source ~/.venvs/ml/bin/activate
pip install --upgrade pip
pip install scikit-learn

# 32-bit Pi (armv7) でビルドが重い場合
# piwheels (Pi 用 wheel ミラー) を使う
pip install --extra-index-url https://www.piwheels.org/simple scikit-learn

バージョン指定 / アップグレード

# 特定バージョン
pip install scikit-learn==1.4.2

# 範囲指定
pip install "scikit-learn>=1.3,<1.6"

# 最新化
pip install -U scikit-learn

# 開発版 (注意)
pip install --pre scikit-learn

# requirements.txt で固定
echo "scikit-learn==1.5.0" >> requirements.txt
pip install -r requirements.txt

動作確認スクリプト

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=0)

clf = LogisticRegression(max_iter=200).fit(X_train, y_train)
pred = clf.predict(X_test)
print(f"accuracy = {accuracy_score(y_test, pred):.3f}")
# → accuracy = 1.000

GPU で機械学習したい場合

scikit-learn はCPU 専用で GPU 対応版はありません。GPU を活かしたい場合は別ライブラリを検討します。

ライブラリGPUscikit-learn 互換
XGBoost★ CUDAfit/predict 互換
LightGBM★ CUDA (要ビルド)fit/predict 互換
NVIDIA RAPIDS cuML★ CUDAscikit-learn API 模倣
PyTorch / TensorFlow★ CUDA / ROCm非互換 (DL 用)

FAQ

Q: ModuleNotFoundError: No module named 'sklearn'
A: venv をアクティベートしていない / 別の Python 環境を呼んでいる。which python; pip list | grep scikit で確認。

Q: BLAS スレッドが暴走する
A: export OMP_NUM_THREADS=4OPENBLAS_NUM_THREADS=4 でスレッド数を制限してください。

Q: Python 3.13 で動かない
A: 最新の scikit-learn が対応しているか PyPI の Classifier を確認。対応していなければ 3.11/3.12 を使うのが無難です。