ImportError: cannot import name 'PILLOW_VERSION' from 'PIL'

原文地址

分类目录——Pytorch

  • 报错

我是在用Pytorch进行手写数字识别的时候,因为程序中导入了torchvision这个模块,循着报错提示找过去,发现报错发生在torchvision\transforms\functional.py中的这一句上

from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION
  • 原因

查了一下原因,是因为

In 7.0.0:

PILLOW_VERSION has been removed. Use __version__ instead.

引自 https://github.com/python-pillow/Pillow/issues/4130#issuecomment-570453802

我尝试对torchvision这个模块进行了更新,结果我的当前版本已经是最新的,它还并没有更新这个写法。

  • 装一个低版本的

这样的话,有一个办法是卸载了Pillow,然后重新安装一个旧版本的

pip uninstall Pillow	# 卸载当前pillow
pip uninstall PIL		# 可能还需要卸载这个模块
pip install Pillow==版本号		# 有些教程说6.1版本的可用

这个我没有实践,仅供参考

  • 修改模块文件

我做了一个大胆的操作,我把functional.py中导入PILLOW_VERSION的部分给改了

from PIL import Image, ImageOps, ImageEnhance, __version__

在Pycharm中修改时会眺出警告,确认就能修改了

但是只有这样还是不够的,因为在下面的程序中用到的还是PILLOW_VERSION这个变量,然后我又做了这样一个操作

PILLOW_VERSION=__version__

注意这一句要放在所有用到PILLOW_VERSION变量的语句之前,我是把这句紧跟在了了所有导入操作之后

综上,我的问题得到了解决

发布了102 篇原创文章 · 获赞 68 · 访问量 5091

猜你喜欢

转载自blog.csdn.net/BBJG_001/article/details/104369234