PyTorch导入触发[WinError 126]:指定模块无法找到,求解决方案
检查Python版本与PyTorch兼容性
你当前使用的Python 3.12在早期PyTorch版本中支持不完善,建议降级到Python 3.10或3.11(PyTorch官方稳定支持版本)。卸载Python 3.12后安装对应版本,再用官方适配命令重新安装PyTorch,例如适配CUDA 12.1的命令:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121手动替换shm.dll文件
找到与你当前PyTorch版本、Python版本、CUDA版本完全匹配的PyTorch whl安装包,解压后进入torch/lib目录,复制其中的shm.dll到报错路径C:\Users\Me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\torch\lib\下替换原文件。清理缓存并重新安装PyTorch
- 完全卸载现有PyTorch组件:执行
pip uninstall torch torchvision torchaudio - 清理pip缓存:执行
pip cache purge - 用官方适配命令重新安装PyTorch,避免使用通用的
pip install torch命令。
- 完全卸载现有PyTorch组件:执行
配置系统PATH环境变量
将C:\Users\Me\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\torch\lib添加到系统环境变量的PATH中,重启命令行或IDE后再尝试导入torch。验证系统依赖完整性
再次用Dependency Walker检查shm.dll的依赖项,若发现缺失系统级dll文件,可从C:\Windows\System32目录复制对应文件到PyTorch的lib目录,或通过Windows更新修复系统组件。
内容的提问来源于stack exchange,提问作者Tacoman 4life

