PyTorch Lightningのインストール方法とpip install lightning/pytorch-lightningの違い
PyTorch Lightningをインストールしようとして最初につまずくのが、pip install lightning と pip install pytorch-lightning のどちらを打てばよいか、という点です。2.0以降のリブランドで名前の異なる2つのパッケージがPyPIに並び、importの書き方も別々になったため、コピーしたサンプルがそのまま動かないケースが増えました。この記事は、2つのパッケージの違いを起点に、pip・conda・Google Colab・GPU環境それぞれの導入手順、対応するPythonとPyTorchのバージョン、そして取り違えで起きる典型エラーの直し方までを2026年7月時点の公式情報でまとめます。
まとめ:インストール前に押さえる要点
- 新規なら
pip install lightning:統合パッケージで、Trainer(lightning.pytorch)とFabric(lightning.fabric)が入る。importはimport lightning as L。 - Trainerだけでよい・既存資産に合わせるなら
pip install pytorch-lightning:importはimport pytorch_lightning as pl。非推奨ではなく現役。 - 最新版は 2.6.5(2026-05-27公開、両パッケージ同一)。対応は Python 3.10以上・PyTorch 2.1以上。
- 取り違えの多くはimport不一致:入れたパッケージとimport文を必ず合わせる。
- GPUで使うならtorchを先に:公式セレクタで自分のCUDAに合うtorchを入れてからLightningを入れる。
以下、それぞれの根拠と具体的なコマンドを順に見ていきます。
PyTorch Lightningの役割と素のPyTorchとの違い
PyTorch Lightningとは、PyTorchで書く学習コードのうち「毎回ほぼ同じになる定型処理」をフレームワーク側に肩代わりさせ、モデルとロジックの記述に集中できるようにするラッパーです。素のPyTorchでは、エポックのforループ、optimizer.zero_grad()・loss.backward()・optimizer.step() の呼び出し、GPUへの.to(device) 転送などを毎回手で書く必要があります。LightningはこれらをTrainer が自動で回すため、書き手はモデル定義と1ステップ分の処理だけを書けば済みます。
PyTorchの定型処理をLightningがどう整理するか
Lightningの設計は「モデル・学習ロジックの中身」と「学習の回し方(デバイス・ループ・ログ)」を分離することにあります。前者は後述のLightningModule に、後者はTrainer に寄せます。この分離により、CPUで書いたコードをGPUやマルチGPUへ移すときにも学習ループ本体を書き換えずに済み、実験の再現や引き継ぎがしやすくなります。ディープラーニングの基礎的な考え方から確認したい場合はAI・機械学習・ディープラーニングの違いを解説した記事が参考になります。
lightning.pytorchとlightning.fabricの役割(旧lightning.appは削除)
統合パッケージlightning の中身は、用途の異なる2つのサブパッケージに整理されています。lightning.pytorch はTrainer とLightningModule による高水準API(従来のPyTorch Lightning本体)で、自動化を最大限効かせたい標準的な学習向けです。lightning.fabric は、素のPyTorchループを自分で書きつつ、分散・混合精度・複数デバイス対応だけを最小の記述で足したい上級者向けの軽量レイヤーです。かつて存在したアプリ構築用のlightning.app は現在のパッケージからは削除されているため、古い記事のlightning.app 前提のコードは使えません。
pip install lightningとpip install pytorch-lightningの違い
ここが検索で最もつまずく部分です。2.0でのリブランド以降、PyPIにはlightning とpytorch-lightning という別名の2パッケージが並存し、どちらも現役で公開・保守されています(2026年7月時点で両方2.6.5)。役割が違うため、目的に合わせて選びます。
lightning(統合パッケージ)とpytorch-lightning(Trainer単体)
pip install lightning は統合パッケージで、Trainer(lightning.pytorch)とFabric(lightning.fabric)をまとめて導入します。公式が新規プロジェクトで推奨するのはこちらです。一方pip install pytorch-lightning は、TrainerだけをまとめたTrainer単体パッケージで、従来からの名前を維持しています。Fabric等は含まれませんが、既存プロジェクトがimport pytorch_lightning 前提で書かれている場合はこちらが素直です。両者のTrainerの機能自体は同じで、名前空間が違うだけです。
パッケージ別のimport文と取り違えエラー
取り違えの実害はほとんどがimport の不一致で起きます。入れたパッケージと書くimport文の対応は次のとおりです。
| インストール | 推奨import | 互換import |
|---|---|---|
| pip install lightning | import lightning as L | import lightning.pytorch as pl |
| pip install pytorch-lightning | import pytorch_lightning as pl | ― |
lightning だけを入れた環境でimport pytorch_lightning を書くと、その名前のパッケージが無いためModuleNotFoundError になります。逆にpytorch-lightning だけを入れてimport lightning と書くと統合パッケージの機能は得られません。直し方は単純で、importを入れたパッケージ側に合わせるか、必要なら不足するパッケージを追加インストールします。
新規・既存別のパッケージ選択基準
判断はシンプルです。これから新しく書き始めるならlightning を入れてimport lightning as L で統一します。既存のリポジトリやチュートリアルがimport pytorch_lightning as pl で書かれていて、それに合わせたいならpytorch-lightning を入れます。どちらも保守されているので「古いから避ける」といった選び方は不要で、コード側のimportと揃っているかだけを基準にすれば十分です。
PyTorch Lightningのインストール手順(pip・conda・仮想環境・Colab)
Lightning本体の導入は数行で完了します。ただしGPUで使う場合はPyTorch本体の入れ方に注意が必要です。環境別に手順を示します。
pipでのインストールとPyTorch本体の準備(GPU/CUDA)
CPUで試すだけなら次の1行で足ります。lightning は依存としてtorch も引き込みます。
python -m pip install lightning
ただしpipが自動で入れるtorch はCPUビルドや意図しないCUDAビルドのことがあります。GPUで学習するなら、先にPyTorch公式のインストールセレクタで自分のCUDAに合うtorch を入れ、そのあとにLightningを入れる順序が安全です。CUDAのタグ(例では cu124)は環境ごとに異なるため、必ず公式セレクタで確認してください。
pip install torch --index-url https://download.pytorch.org/whl/cu124
pip install lightning
conda・仮想環境(venv)でのセットアップ
他プロジェクトとの依存衝突を避けるため、仮想環境の中で入れることを推奨します。venvなら環境を作って有効化してからインストールします。
python -m venv lightning_env
source lightning_env/bin/activate
pip install lightning
Anaconda環境では、conda-forgeチャネルから導入できます。
conda create -n lightning_env python=3.10
conda activate lightning_env
conda install lightning -c conda-forge
Google Colab・Jupyterでの導入
Google Colabではあらかじめtorch が入っているため、ノートブックのセルでLightningだけを追加すれば使えます。
!pip install lightning
Jupyter Notebookでも同じコマンドで導入できますが、インストール後にimportが通らない場合はカーネルを再起動してから読み込み直してください。既存カーネルが古い状態を保持していることがあります。
バージョン指定とインストール確認コマンド
再現性のためにバージョンを固定したいときは、番号を明示して入れます。
pip install lightning==2.6.5
導入後は、実際に読み込めるか・どのバージョンかを1行で確認しておくと、後述のバージョン不整合を早期に発見できます。
python -c "import lightning; print(lightning.__version__)"
pytorch-lightning を入れた場合はpython -c "import pytorch_lightning as pl; print(pl.__version__)" で確認します。いずれも現在は2.6.5 と表示されれば成功です。
対応バージョンとPython・PyTorch互換性(2026年時点)
インストールが通らない・importでエラーになる原因の多くは、PythonやPyTorchのバージョンがLightningの対応範囲から外れていることです。2026年7月時点の対応は次のとおりです。
| 項目 | 対応 |
|---|---|
| lightning / pytorch-lightning | 2.6.5(2026-05-27) |
| Python | 3.10 / 3.11 / 3.12 / 3.13 |
| PyTorch | 2.1 以上 |
Python 3.9はサポート終了に伴い2.6系で対象外になりました。PyTorchは「最新の複数マイナーバージョンをサポートする」方針のため、上限は版が上がるたびに動きます。正確な上限は公式のバージョン互換表で確認してください。
バージョン不整合エラーの回避
torch がLightningの下限(2.1)より古い、あるいはそのLightning版が検証していない新しすぎるtorch と組み合わさると、import時や実行時にエラーが出ます。回避の基本は、Lightningとtorchのどちらかを互換範囲に寄せることです。pip list で両者の実バージョンを確認し、必要ならLightningを最新へ上げるか、torchをサポート対象のマイナーに固定します。仮想環境を分けておくと、他プロジェクトのtorchに引きずられる事故も防げます。
PyTorch Lightningの基本的な使い方(LightningModuleとTrainer)
インストールが済んだら、最小構成で学習が回ることを確認しておきます。Lightningのコードは、モデルと学習ロジックを書くLightningModule と、それを実行するTrainer の2つが軸になります。
LightningModuleでモデルと学習ロジックを定義する
LightningModule はPyTorchのnn.Module を拡張したクラスで、__init__・forward・training_step・configure_optimizers の4つを実装すれば動きます。training_step は1ステップ分の損失を返すだけでよく、逆伝播やパラメータ更新はTrainerが自動で行います。検証時の指標を出したいときはvalidation_step を追加します。
Trainerで学習を実行する(.fit)
学習はTrainer を作り、fit() にモデルとデータローダーを渡すだけです。エポック数やデバイスは引数で指定します。MNIST分類を最小構成で書くと次のようになります(lightning パッケージ・import lightning as L の例)。
import lightning as L
import torch
from torch import nn
import torch.nn.functional as F
from torch.utils.data import DataLoader
from torchvision.datasets import MNIST
from torchvision.transforms import ToTensor
class LitModel(L.LightningModule):
def __init__(self):
super().__init__()
self.net = nn.Sequential(nn.Flatten(), nn.Linear(28 * 28, 10))
def forward(self, x):
return self.net(x)
def training_step(self, batch, batch_idx):
x, y = batch
loss = F.cross_entropy(self(x), y)
self.log("train_loss", loss)
return loss
def configure_optimizers(self):
return torch.optim.Adam(self.parameters(), lr=1e-3)
train_loader = DataLoader(MNIST(".", download=True, transform=ToTensor()), batch_size=64)
trainer = L.Trainer(max_epochs=3)
trainer.fit(LitModel(), train_loader)
self.log() で記録した値はTensorBoardなどのロガーに自動で送られます。EarlyStopping やModelCheckpoint といったコールバックもTrainer(callbacks=[...]) に渡すだけで有効になります。
GPU・分散学習・混合精度の設定
Lightningの利点が最も出るのがハードウェア対応です。学習ループのコードを変えずに、Trainerの引数だけでCPU・GPU・マルチGPUや混合精度を切り替えられます。
accelerator・devicesでデバイスを切り替える
使う演算装置はaccelerator、その台数はdevices で指定します。ローカルはCPU、クラウドではGPUといった切り替えを、同じコードのまま引数だけで行えます。
trainer = L.Trainer(accelerator="gpu", devices=1)
accelerator="auto" にすると利用可能なデバイスを自動選択します。TPUを使う場合はaccelerator="tpu" を指定します。
マルチGPU(DDP)と混合精度(precision)
複数GPUで学習するときは、台数を増やし分散戦略を指定します。strategy="ddp" がDistributedDataParallelによる標準的なマルチGPU学習です。
trainer = L.Trainer(accelerator="gpu", devices=2, strategy="ddp")
メモリ削減と高速化を狙うなら混合精度を有効にします。precision="16-mixed" でFP16の自動混合精度が適用され、対応GPUでは学習時間とメモリ使用量を抑えられます。設定はTrainerの引数1つで完結するため、まず単一GPUで動作を確認してから台数や精度を上げる進め方が安全です。
よくある質問
pip install lightningとpip install pytorch-lightningのどちらを使うべきですか?
新規に書き始めるならlightning を入れてimport lightning as L で統一するのが公式推奨です。既存コードやチュートリアルがimport pytorch_lightning as pl で書かれていて合わせたい場合はpytorch-lightning を入れます。どちらも現役で保守されており、機能に差はありません。
import pytorch_lightningとimport lightning.pytorchの違いは何ですか?
どちらも同じTrainerのコードを指しますが、名前空間が異なります。pip install pytorch-lightning ではimport pytorch_lightning as pl、pip install lightning ではimport lightning.pytorch as pl(またはimport lightning as L)を使います。インストールしたパッケージとimport文が食い違うとModuleNotFoundError になります。
PyTorch本体は別にインストールが必要ですか?
CPUで試すだけならpip install lightning がtorch も引き込むため追加作業は不要です。GPUで使う場合は、自動で入るtorchがCPUビルドや意図しないCUDAビルドのことがあるため、PyTorch公式セレクタで自分のCUDAに合うtorchを先に入れてからLightningを入れてください。
Lightning App(lightning.app)はどうなりましたか?
アプリ構築用のlightning.app は現在のlightning パッケージからは削除されています。今の統合パッケージはTrainer(lightning.pytorch)とFabric(lightning.fabric)で構成されるため、lightning.app 前提の古いコードやドキュメントはそのままでは動きません。
pytorch-lightningはもう非推奨ですか?
いいえ。pytorch-lightning は非推奨ではなく、lightning と同じバージョン(2.6.5)で同時に公開・保守されている現役パッケージです。公式は新規でlightning を推奨していますが、それは推奨であってpytorch-lightning の廃止ではありません。あわせて、Accelerator for Apacheについても解説しています。