【PyTorch】import torch で DLL load failed エラーの解決法

冒頭

Windows環境でPythonを実行し、import torchを実行したところ、以下のエラーが発生しました。

from torch._C import *, DLL load failed: The specified module could not be found.

このエラーは、PyTorchのインストールが完了しているように見えても、DLL(ダイナミックリンクライブラリ)の読み込みに失敗した場合に発生します。特にWindows環境では、CUDAやNumPyのバージョン競合导致的的に起こりやすい問題です。

結論

NumPyをMKL版(Math Kernel Library)に変更するか、PyTorchとNumPyのバージョンを再インストールすることで解決できます。

具体的な手順

手順1:現在の環境を確認する

まず、現在のPython環境とインストール済みパッケージを確認します。

python --version
pip list | grep -E "(torch|numpy)"

手順2:NumPyをMKL版に再インストールする(Windows環境)

Windows環境では、NumPyの通常版ではなくMKL版をインストールすることで解決する場合があります。

# NumPyをアンインストール
pip uninstall numpy

# NumPy+MKLをインストール(Python 3.6、64bitの場合)
pip install numpy-1.14.5+mkl-cp36-cp36m-win_amd64.whl

# または、最新バージョンのMKL版をインストール
pip install numpy --upgrade

※Pythonのバージョンに合わせて適切な.whlファイルを選択してください。

手順3:PyTorchを再インストールする

NumPyの再インストール後、PyTorchも再インストールします。

# PyTorchをアンインストール
pip uninstall torch
pip uninstall torchvision

# PyTorchを再インストール(CPU版)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu

# CUDA版をインストールする場合
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

手順4:動作確認

インストールが完了したら、Pythonでインポートテストを行います。

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

このコマンドがエラーなく実行できれば、PyTorchのインポートに成功しています。

手順5:condaを使用する場合

conda環境を使用している場合は、以下の手順で確認・解決できます。

# 環境の確認
conda list | grep torch

# condaで再インストール
conda uninstall pytorch
conda install pytorch torchvision cpuonly -c pytorch

補足・注意点

バージョン依存について

  • NumPyのバージョン:NumPy 1.14.5〜1.16系はPyTorch 1.x系と互換性が高いです
  • Pythonのバージョン:Python 3.6〜3.9範囲での組み合わせが安定しています
  • CUDAバージョン:GPUを使用する場合、CUDA 10.1〜11.8とPyTorchのバージョンを一致させる必要があります

環境別の注意点

  • Windows:MKL版のNumPy必須。Visual C++ 再頒布可能パッケージのインストールが必要な場合あり
  • macOS:Metal Performance Shaders (MPS) の対応状況に注意
  • Linux:多くの場合、pip installで正常に動作するが、ソースからのビルド時はGCCのバージョンに注意

よくある落とし穴

  • 複数環境の混在:condaとpipを混在させると、DLLの競合が発生しやすい
  • 仮想環境の不一致:アクティブにしているPython環境と、安装しているPyTorchの環境が異なっている場合がある
  • TensorFlowとの競合:TensorFlowとPyTorchを同時にインポートするとクラッシュする場合がある(回避策:順序を入れ替える)

開発時の注意点

開発時はsetup.py installではなく、setup.py developを使用することで、インポート問題を回避できる場合があります。

python setup.py develop

参考元

おすすめ環境

💡 この問題を根本的に解決するには

ローカル環境でGPUトラブルが頻発する場合、クラウドGPUサービスの利用も検討してみてください。環境構築の手間なく、すぐにAI開発を始められます。

  • RunPod — RTX 4090が$0.44/h〜、ワンクリックでJupyter環境が起動
  • Vast.ai — コミュニティGPUマーケットプレイス、最安値でGPUレンタル
この記事は役に立ちましたか?