导入torchvision时报ImportError:无法从torch._ops导入OpOverload
解决ImportError: cannot import name 'OpOverload' from 'torch._ops'
问题场景
运行以下代码时触发ImportError:
from torchvision import datasets,transforms
错误详情
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[11], line 5 3 import pickle 4 import numpy as np ----> 5 from torchvision import datasets,transforms 6 from PIL import Image 7 from torch.utils.data import Dataset, DataLoader File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torchvision/__init__.py:10 7 # Don't re-order these, we need to load the _C extension (done when importing 8 # .extensions) before entering _meta_registrations. 9 from .extension import _HAS_OPS # usort:skip ---> 10 from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils # usort:skip 12 try: 13 from .version import __version__ # noqa: F401 File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torchvision/_meta_registrations.py:4 1 import functools 3 import torch ----> 4 import torch._custom_ops 5 import torch.library 7 # Ensure that torch.ops.torchvision is visible File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_custom_ops.py:4 1 # mypy: allow-untyped-defs 2 import inspect ----> 4 from torch._custom_op.impl import ( 5 _custom_op_with_schema, 6 _find_custom_op, 7 infer_schema, 8 parse_qualname, 9 validate_namespace, 10 ) 11 from torch.library import get_ctx 14 __all__ = [ 15 "custom_op", 16 "impl", (...) 20 "impl_backward", 21 ] File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_custom_op/impl.py:14 12 import torch 13 import torch._C as _C ---> 14 import torch.library as library 15 from torch.library import get_ctx 17 from .autograd import autograd_kernel_indirection, construct_autograd_kernel File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/library.py:13 10 from typing_extensions import deprecated 12 import torch ---> 13 import torch._library as _library 14 from torch._library.custom_ops import ( 15 _maybe_get_opdef, 16 custom_op, 17 CustomOpDef, 18 device_types_t, 19 ) 20 from torch._library.infer_schema import infer_schema # noqa: F401 File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_library/__init__.py:1 ----> 1 import torch._library.autograd 2 import torch._library.fake_impl 3 import torch._library.simple_registry File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_library/autograd.py:9 6 from torch import _C, _ops, autograd, Tensor 7 from torch.utils import _pytree ----> 9 from . import utils 12 class InfoProtocol(Protocol): 13 _backward_fn: Optional[Callable] File ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_library/utils.py:9 7 import torch 8 from torch import _C, _utils_internal ----> 9 from torch._ops import OpOverload 12 @dataclasses.dataclass 13 class Kernel: 14 """Models a (function, source location)""" ImportError: cannot import name 'OpOverload' from 'torch._ops' (/root/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch/_ops.py)
已尝试无效操作
- 执行
pip uninstall torch torchvision后重新运行pip3 install torch torchvision torchaudio,错误依旧。
解决方案
1. 彻底清理残留后重装
卸载后手动删除torch相关残留文件,避免旧版本文件干扰:
pip uninstall -y torch torchvision torchaudio rm -rf ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torch* rm -rf ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torchvision* rm -rf ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/torchaudio*
之后根据你的CUDA版本安装对应兼容的torch版本(示例为CUDA 11.8):
pip3 install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
2. 验证环境一致性
- 确保激活正确的conda环境,避免跨环境安装导致的路径混乱:
conda activate pytorch - 检查torch版本及模块可用性:
如果导入失败,说明当前torch版本不支持import torch print(torch.__version__) from torch._ops import OpOverload # 测试是否能正常导入OpOverload,需更换至torch 1.13及以上的兼容版本。
3. 改用conda安装
若pip安装仍有问题,尝试用conda安装以保证依赖兼容性:
conda uninstall -y torch torchvision torchaudio conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
内容的提问来源于stack exchange,提问作者Hongtauo
相关产品推荐
相关产品推荐

