[WinError 126] 指定されたモジュールが見つかりません の原因と解決方法【PyTorch / DLL不足】

技術系ノウハウ

[WinError 126] 指定されたモジュールが見つかりません とは

Windows環境でPythonライブラリ(特にPyTorch)を使っていると、以下のようなエラーが出ることがあります。

OSError: [WinError 126] 指定されたモジュールが見つかりません。
Error loading "...\torch\lib\fbgemm.dll" or one of its dependencies.

このエラーは、PyTorchが必要とするDLLファイルが見つからない場合に発生します。
今回は、私の環境(Python 3.10 / PyTorch 2.4.0+cu121)で最終的に解決した方法と、試した手順をまとめます。


試したが効果がなかった方法

1. Visual C++ 再頒布可能パッケージの再インストール

Microsoft公式サイトから最新版のVisual C++ Redistributableを再インストール。
効果なし

2. NumPyバージョン調整

numpy<2 にダウングレードしてPyTorchの互換性を確保。

pip install --upgrade --force-reinstall "numpy<2"

→ 一部のNumPy依存エラーは消えたが、[WinError 126] は残った。

3. PyTorchの再インストール

PyTorch本体と関連パッケージ(torchvision, torchaudio)をCUDAバージョン指定で再インストール。

pip install --upgrade --force-reinstall torch==2.4.0+cu121 torchvision==0.19.0+cu121 torchaudio==2.4.0+cu121 --index-url https://download.pytorch.org/whl/cu121

→ エラー変わらず。


libomp140.x86_64.dllを配置して解決

不足していたのは libomp140.x86_64.dll という Intel OpenMPランタイムライブラリ でした。
これはPyTorch内部のfbgemm.dllが依存しているDLLのようです。

1. DLLファイルを入手(各自で検索・自己責任)

libomp140.x86_64.dll で検索し、各自の判断で入手してください。

自己責任のお願い

  • 出所が不明な DLL はセキュリティリスクがあります。
  • なるべく 公式・信頼できる配布元 を選んでください。
  • ダウンロードしたファイルは ウイルススキャンデジタル署名の有無確認ハッシュ確認(例:SHA-256) を推奨します。

2. 配置先

入手したlibomp140.x86_64.dll管理者権限C:\Windows\System32 にコピーします。

注意:System32 に配置する場合は、既存の同名ファイルを必ず別名でバックアップしてください。誤ったDLLの上書きは、システムの動作に重大な影響を与えるおそれがあります。


他ユーザーの報告

同様のエラーは海外フォーラムでも多数報告されています。


[WinError 126] の原因と解決方法まとめ

  • 原因:PyTorchが依存する libomp140.x86_64.dll が見つからない
  • 解決:DLLを入手し、C:\Windows\System32 に配置

DLL不足はPyTorchだけでなく、他の科学計算系ライブラリや機械学習フレームワークでも起こり得ます。エラーが出たらまずは「どのDLLが不足しているか」を確認して配置することが重要です。

コメント

タイトルとURLをコピーしました