导入PyTorch遇AttributeError: module 'dill' has no attribute 'extend'求助
PyTorch导入报错的解决方法
问题详情
我通过以下命令安装了PyTorch、torchvision和torchaudio:
(base) C:\>pip3 install torch torchvision torchaudio Requirement already satisfied: torch in c:\users\Emil\appdata\roaming\python\python38\site-packages (1.9.0) Requirement already satisfied: torchvision in c:\users\Emil\appdata\roaming\python\python38\site-packages (0.10.0) Requirement already satisfied: torchaudio in c:\users\Emil\anaconda3\lib\site-packages (0.12.1) Requirement already satisfied: typing-extensions in c:\users\Emil\anaconda3\lib\site-packages (from torch) (3.7.4.3) Requirement already satisfied: numpy in c:\users\Emil\anaconda3\lib\site-packages (from torchvision) (1.22.2) Requirement already satisfied: pillow>=5.3.0 in c:\users\Emil\anaconda3\lib\site-packages (from torchvision) (8.0.1)
随后在Spyder中尝试执行import torch,收到如下错误:
import torch C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\package\_mock_zipreader.py:17: UserWarning: Failed to initialize NumPy: numpy.core.multiarray failed to import (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:67.) _dtype_to_storage = {data_type(0).dtype: data_type for data_type in _storages} Traceback (most recent call last): File "<ipython-input-1-eb42ca6e4af3>", line 1, in <module> import torch File "C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\__init__.py", line 705, in <module> import torch.utils.data File "C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\utils\data\__init__.py", line 28, in <module> from torch.utils.data import datapipes File "C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\utils\data\datapipes\__init__.py", line 1, in <module> from . import iter File "C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\utils\data\datapipes\iter\__init__.py", line 8, in <module> from torch.utils.data.datapipes.iter.callable import \ File "C:\Users\Emil\AppData\Roaming\Python\Python38\site-packages\torch\utils\data\datapipes\iter\callable.py", line 13, in <module> dill.extend(use_dill=False) AttributeError: module 'dill' has no attribute 'extend'
解决步骤
- 修复dill版本兼容性问题:错误核心是当前dill版本与PyTorch 1.9.0不兼容,执行以下命令安装适配版本:
pip install dill==0.3.4 - 解决numpy初始化警告:由于numpy安装在Anaconda环境,而torch在用户目录的Python包路径,存在环境依赖冲突。在当前base环境下执行命令安装与PyTorch 1.9.0兼容的numpy版本:
pip install numpy==1.21.6 - 确认Spyder解释器一致性:打开Spyder的
工具 > 偏好设置 > Python解释器,选择执行pip命令的base环境对应的Python解释器,确保环境统一。
内容的提问来源于stack exchange,提问作者Emil
相关产品推荐
相关产品推荐

