一、基本情况概述

因学习需要,选择了Anaconda3 2022-10(版本号22.9.0) ,Pytorch 1.10.1、torchvision 0.11.2。

在pycharm中导入torchvision或matplotlib包时,会报错:“ImportError: DLL load failed while importing _imaging: 找不到指定的模块。”


报错详细信息:

D:\TOOLS\PyCharm 2024.3.1.1\plugins\python-ce\helpers\pycharm_display\datalore\display\supported_data_type.py:6: UserWarning: The NumPy module was reloaded (imported a second time). This can in some cases result in small but subtle issues and is discouraged. import numpy

Traceback (most recent call last):

File "D:\TOOLS\PythonSpace\Conda\DpProject38\lib\site-packages\torchvision\__init__.py", line 7, in <module>

from torchvision import datasets

File "D:\TOOLS\PythonSpace\Conda\DpProject38\lib\site-packages\torchvision\datasets\__init__.py", line 1, in <module>

from .lsun import LSUN, LSUNClass

File "D:\TOOLS\PythonSpace\Conda\DpProject38\lib\site-packages\torchvision\datasets\lsun.py", line 2, in <module>

from PIL import Image File

"D:\TOOLS\PythonSpace\Conda\DpProject38\lib\site-packages\PIL\Image.py", line 100, in <module>

from . import _imaging as core

ImportError: DLL load failed while importing _imaging: 找不到指定的模块。 

二、问题排查 

询问DeepSeek后,我根据其建议卸载Pillow并重新安装,重新安装pillow后可以使用matplotlib,但是torchvision在卸载pillow的时候也一并被卸载了,重新安装torchvision后运行又报同样的错。

由于使用conda安装旧版本的torchvision时会自动根据依赖版本安装旧版本的pillow,推测是pillow新旧版本之间冲突导致的问题。

三、解决措施

措施来自DeepSeek和多个博客。


1.运行anaconda prompt,使用conda activate切换到指定的环境后,卸载全部的torchvision和pillow。
conda uninstall torchvision pillow -y
pip uninstall pillow -y
2.通过conda安装torchvision(自动安装conda版Pillow)
conda install torchvision=0.11.2 cudatoolkit=10.2 -c pytorch
3.用pip强行覆盖安装新版本Pillow
python -m pip install --upgrade Pillow --target=D:\tools\pythonspace\conda\dpproject38\Lib\site-packages --force-reinstall --ignore-installed
4. 手动修正DLL路径(仅限Windows)
# 将pip安装的Pillow的DLL文件复制到conda目录
copy D:\tools\pythonspace\conda\dpproject38\Lib\site-packages\PIL\._imaging*.pyd D:\tools\pythonspace\conda\dpproject38\Library\bin

通过以上措施,问题应该能够解决。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐