无法导入scipy.misc.imread
我之前见过其他人遇到过这个问题,但一直没找到解决办法。
我只是想做的是:
from scipy.misc import imread
结果我得到了
/home1/users/joe.borg/<ipython-input-2-f9d3d927b58f> in <module>()
----> 1 from scipy.misc import imread
/software/Python/272/lib/python2.7/site-packages/scipy/misc/__init__.py in <module>()
16 try:
17 from pilutil import *
---> 18 __all__ += pilutil.__all__
19 except ImportError:
20 pass
NameError: name 'pilutil' is not defined
但是当我单独使用 from pilutil import *
时没有任何错误。甚至.../site-packages/scipy/misc/pilutil.py 这个文件也存在,所以我完全不知道为什么会出错。
10 个回答
31
在scipy.misc
里,imread
这个方法需要一个叫Pillow
的包,它是PIL
的一个分支。如果你在安装正确版本的PIL时遇到问题,可以尝试在其他包里使用imread
:
from matplotlib.pyplot import imread
im = imread(image.png)
如果你想读取jpg
格式的图片而不使用PIL
,可以这样做:
import cv2 as cv
im = cv.imread(image.jpg)
76
如果你安装了 Pillow
和 scipy
,但还是出现错误,那就检查一下你的 scipy
版本,因为从 1.3.0rc1
开始,scipy
就把某些东西给去掉了。
你可以安装 scipy 1.1.0
,方法是:
pip install scipy==1.1.0
可以查看这个链接了解更多信息:https://github.com/scipy/scipy/issues/6212