导入PyTorch Geometric触发Dlopen错误该如何解决
报错根因
该报错是torch_sparse库与当前环境PyTorch的二进制接口不兼容导致的:torch_sparse编译时依赖的PyTorch版本,和你当前运行环境中实际安装的PyTorch版本不一致,所以无法找到对应符号文件。
排查步骤
- 第一步先确认当前环境的PyTorch版本,执行命令:
python -c "import torch; print(torch.__version__)" - 第二步确认已安装的PyG相关依赖版本,执行命令:
pip list | grep torch
检查输出中torch_sparse、torch_scatter、torch_cluster、torch_spline_conv的版本是否和PyTorch版本适配,两者版本不匹配是该问题的最常见诱因。
修复方案
- 先卸载所有旧的PyG相关依赖,执行命令:
pip uninstall torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -y
- 按照你当前的PyTorch版本,重新安装对应适配版本的依赖:
如果是CPU版本PyTorch,将命令中的${TORCH_VERSION}替换为你第一步查到的PyTorch版本号(例如2.0.1)后执行:pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-${TORCH_VERSION}+cpu.html
如果是GPU版本PyTorch,将上述命令末尾的cpu替换为你对应的CUDA版本号(例如cu117)即可。 - 安装完成后验证导入:
执行from torch_geometric.data import Data,无报错即修复成功。
补充注意:尽量避免pip和conda混用安装PyTorch生态库,如果你的PyTorch是通过conda安装的,优先使用conda命令安装PyG相关依赖,可进一步降低版本冲突概率。
内容的提问来源于stack exchange,提问作者sjgandhi2312
相关产品推荐
相关产品推荐

