原帖确认 fbgemm.dll 存在,但 import torch 仍提示“or one of its dependencies”:
OSError: [WinError 126] can't find this module. Error loading "d:\anaconda3\envs\RN\lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
主 DLL 存在,不代表依赖树完整
原题 fbgemm.dll 已在磁盘上,报错也明确说“或其依赖”。应查真正无法加载的依赖与架构,而不是重复下载主 DLL。某些 CSDN 文章建议从 DLL 下载站补文件,不能据此采用未经来源核验的系统库替换。
Windows 的加载错误也可能指向依赖缺失或架构不匹配。先记录 Python 与包元数据,不要在 torch 尚不能导入时依赖它来诊断。
import sys
import struct
from importlib.metadata import distribution
print("josh050608")
print("python:", sys.executable, sys.version, struct.calcsize("P") * 8)
dist = distribution("torch")
print("torch package:", dist.version, dist.locate_file("torch/lib/fbgemm.dll"))
使用 Visual Studio 开发者命令提示符中的 dumpbin /DEPENDENTS 检查报错路径下的 fbgemm.dll;它列出直接依赖,缺失项还需沿依赖树继续检查。记录真正缺的是哪个 DLL,不能因为主文件存在就反复复制同一个文件。
若缺 MSVC 运行库,按 Microsoft 官方支持说明安装/修复与 Python 架构匹配的运行库。若定位到特定 PyTorch Windows 构建的 OpenMP 依赖问题,应查该构建的官方 issue/修复版本,使用官方安装器或匹配的已修复包。单装 VC Redistributable 不保证补齐所有 OpenMP 组件。
不要从随机 DLL 下载站取文件放进 System32;应从对应开发工具或包的官方分发来源恢复依赖。在独立环境验证兼容包,比随意修改系统搜索路径更易定位。
最后关闭所有 Python/Notebook 进程,在同一解释器测试 import torch 和 CPU 小张量运算。原帖没有完整版本和依赖扫描结果,因此不能断言一定缺 libomp140。
把直接依赖与间接依赖逐级核对
在 Visual Studio 开发者命令提示符中,对原错误里的确切路径运行下面命令。示例路径来自原题,自己的环境应替换为实际输出:
dumpbin /DEPENDENTS "d:\anaconda3\envs\RN\lib\site-packages\torch\lib\fbgemm.dll"
列出的 DLL 名并不自动说明“缺失”;还要确认 Windows 加载器能在当前进程搜索路径找到相同架构的文件,并继续查看间接依赖。错误可能涉及 MSVC、OpenMP 或其他运行库,必须以扫描结果和对应构建记录为依据。
下面标准库检查记录包文件与解释器位数,不调用 LoadLibrary,也不修改 PATH:
import sys
import struct
from importlib.metadata import distribution
package = distribution("torch")
library = package.locate_file("torch/lib/fbgemm.dll")
print("interpreter:", sys.executable)
print("bits:", struct.calcsize("P") * 8)
print("torch distribution:", package.version)
print("dll exists/path:", library.is_file(), library)
若确认缺 MSVC 组件,使用 Microsoft 官方运行库安装或修复程序;若是已知构建的 OpenMP 分发问题,按官方 issue 的影响版本和修复方式处理。单装某个运行库不保证覆盖全部依赖,不要把“主文件存在”直接解释成“肯定缺 libomp140”。
修复后退出全部 Python 进程,再从失败解释器导入 torch,做 CPU 小运算,最后启动原项目。保留依赖扫描结果与所用包来源,方便确认问题确实在依赖层解决。
参考:原始求助帖;技术依据:Microsoft Visual C++ 运行库、PyTorch 官方 fbgemm 依赖问题记录、pip 官方用法、Microsoft DUMPBIN /DEPENDENTS。