[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の上書きは、システムの動作に重大な影響を与えるおそれがあります。
他ユーザーの報告
同様のエラーは海外フォーラムでも多数報告されています。
- Stack Overflow
“But the issue solved by simply downloading libomp140.x86_64.dll and place it in ‘C:\Windows\System32’ and it finally works after long pain of trying this and that!”
https://stackoverflow.com/questions/78114412/import-torch-how-to-fix-oserror-winerror-126-error-loading-fbgemm-dll-or-depen - PyTorch公式フォーラム
“Since it is distributed with visual studio (not visual studio code) I installed visual studio community edition and libomp140.x86_64.dll was now put in both the visual studio program files and in C:\Windows\System32\ ie. in the Path. Now the ComfyUI main.py script runs fine on my system. Hope this helps.”
https://discuss.pytorch.org/t/failed-to-import-pytorch-fbgemm-dll-or-one-of-its-dependencies-is-missing/201969
[WinError 126] の原因と解決方法まとめ
- 原因:PyTorchが依存する
libomp140.x86_64.dll
が見つからない - 解決:DLLを入手し、
C:\Windows\System32
に配置
DLL不足はPyTorchだけでなく、他の科学計算系ライブラリや機械学習フレームワークでも起こり得ます。エラーが出たらまずは「どのDLLが不足しているか」を確認して配置することが重要です。
コメント