You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行图生成EDGE扩散模型时torch_scatter报错求助

解决torch_scatter加载失败(Symbol not found: __ZN3c1017RegisterOperatorsD1Ev)

核心原因

该错误源于PyTorch与torch_scatter版本不匹配,或是torch_scatter预编译包和本地PyTorch的编译环境(如C++版本、CPU架构适配)不兼容,导致符号缺失,在Mac系统中这类预编译库适配问题尤为常见。

具体解决步骤

1. 清理现有环境

先卸载已安装的相关包,避免版本残留冲突:

pip uninstall -y torch torchvision torchaudio torch_scatter

2. 安装适配的PyTorch版本

针对你的Mac系统(Python3.10),使用官方推荐命令安装对应版本的PyTorch,CPU版本示例:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

若为M系列芯片Mac,直接使用上述命令会自动适配Apple Silicon版本。

3. 源码编译torch_scatter(关键适配步骤)

预编译包易出现环境不兼容问题,源码编译可确保完全适配本地PyTorch:

  • 克隆仓库并进入目录:
git clone https://github.com/rusty1s/pytorch_scatter.git
cd pytorch_scatter
  • 查看当前PyTorch版本,切换到对应tag分支:
# 查看PyTorch版本
python -c "import torch; print(torch.__version__)"
# 示例:若PyTorch为2.0.x,切换到v2.1.0
git checkout v2.1.0
  • 编译安装(若提示cmake/ninja缺失,先通过brew install cmake ninja安装):
python setup.py install

4. 验证安装

运行以下代码测试是否成功:

import torch
from torch_scatter import scatter

x = torch.tensor([1, 2, 3, 4, 5])
index = torch.tensor([0, 1, 0, 1, 0])
output = scatter(x, index, dim=0, reduce='sum')
print(output)  # 预期输出:tensor([9, 6])

额外注意事项

  • 确保使用干净的虚拟环境(如你当前的myenv),避免全局包干扰。
  • 不要混合使用conda和pip安装PyTorch,统一用一种包管理工具,减少环境冲突。

内容的提问来源于stack exchange,提问作者Turex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:12:26