PyTorch循环导入引发AttributeError问题求助
PyTorch循环导入引发AttributeError问题求助
Hey Anna,我之前也踩过这个一模一样的坑,太懂这种卸载重装都没用的崩溃感了!你遇到的这个AttributeError提示“partially initialized module 'torch' has no attribute 'Tensor'”,虽然提示说是循环导入,但大概率是本地文件命名冲突或者缓存残留的问题,给你几个实用的排查方向:
- 先检查你的脚本文件名!绝对不要把自己的代码文件命名成
torch.py或者带torch前缀的名字(比如torch_utils.py),不然Python会优先加载你本地的这个文件,而不是真正的PyTorch官方库,直接就搞混了——我之前就是手贱把测试脚本命名成torch_test.py,折腾了半小时才发现问题😂 - 清理一下当前目录下的缓存文件:看看有没有
__pycache__文件夹或者.pyc后缀的文件,这些缓存可能残留了错误的导入信息,删掉它们之后再重新运行脚本试试 - 检查代码里的导入顺序:有没有在
import torch语句之前就尝试调用torch.Tensor或者其他PyTorch属性?或者你的自定义模块之间有没有循环导入的情况(比如模块A导入torch,模块B导入A同时又导入torch)? - 试试在干净的虚拟环境里测试:用
python -m venv torch_env创建一个新虚拟环境,激活后重新安装torch,然后运行一段极简代码import torch; print(torch.Tensor([1,2,3])),如果这个能正常运行,说明你原来的环境里有其他干扰因素 - 最后确认下PyTorch的安装路径:在Python交互环境里输入
import torch; print(torch.__file__),看看输出的路径是不是指向你的Python环境下的PyTorch安装目录,如果是指向你本地的某个脚本文件,那肯定是命名冲突没跑了
备注:内容来源于stack exchange,提问作者Anna M
相关产品推荐
相关产品推荐

