为何torchtext运行时提示找不到符号_ZN2at6detail10noopDeleteEPv
报错原因
这个错误是PyTorch和torchtext版本不兼容导致的。torchtext底层依赖PyTorch的C计算库ATen,编译torchtext时绑定的PyTorch版本,和你当前环境实际安装运行的PyTorch版本不一致,就会出现底层C符号找不到的问题,你遇到的_ZN2at6detail10noopDeleteEPv就是ATen库中缺失的符号。
修复方案
- 先确认当前环境的PyTorch版本,执行命令
pip show torch或者conda list torch查看版本号,按照PyTorch和torchtext的版本对应规则找到适配的torchtext版本,常见版本对应关系参考:PyTorch 1.12.x 对应 torchtext 0.13.x、PyTorch 1.13.x 对应 torchtext 0.14.x、PyTorch 2.0.x 对应 torchtext 0.15.x、PyTorch 2.1.x 对应 torchtext 0.16.x,以此类推。 - 卸载现有不兼容的torchtext:
如果你是pip安装的,执行:pip uninstall torchtext
如果你是conda安装的,执行:conda remove torchtext - 安装匹配版本的torchtext,比如你当前PyTorch是1.13.1,就执行
pip install torchtext==0.14.1即可。如果安装后仍然报错,可以尝试连同PyTorch一起重装,确保两者版本完全匹配。 - 如果你只是需要用到torchtext的词汇表能力,也可以替换为其他独立的词汇表处理工具,避免版本绑定问题。
内容的提问来源于stack exchange,提问作者Charlie Parker
相关产品推荐
相关产品推荐

