无法导入scipy.misc.imread

jdb*_*org 46 python scipy

我之前和其他人见过这个问题,但还没有找到解决办法.

我所要做的就是:

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
Run Code Online (Sandbox Code Playgroud)

但是当我from pilutil import *自己做的时候没有问题(没有导入错误).甚至....../site-packages/scipy/misc/pilutil.py存在,所以我不知道为什么会失败.

car*_*ier 56

您可能需要安装PILPillow.

  • 对于python3:`pip3 install Pillow` (5认同)
  • 对我来说,这在更改为“from scipy.misc.pilutil import imread”时有效 (2认同)

use*_*pij 14

如果您已经Pillow安装了scipy,但仍给您错误,请检查您的scipy版本,因为该版本已从scipy中删除1.3.0rc1

而是scipy 1.1.0通过安装

pip install scipy==1.1.0

检查https://github.com/scipy/scipy/issues/6212

  • 版本“1.2.1”对我有用。使用 `conda install -c anaconda scipy=1.2.1` 安装 (10认同)

Mas*_*edi 12

该方法imreadscipy.misc需要的叉包PIL命名Pillow。如果您在安装正确版本的PIL时遇到问题,请尝试imread在其他软件包中使用:

from matplotlib.pyplot import imread
im = imread(image.png)
Run Code Online (Sandbox Code Playgroud)

jpg不用阅读 图像PIL

import cv2 as cv
im = cv.imread(image.jpg)
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过添加一些信息(当从scipy.misc导入失败时为什么可以这样做)来改善您的答案。系统会将短代码或错误转储标记为低质量答案。 (2认同)

小智 10

查看文档,它说 scipy.misc.imread 已被弃用。它说安装 imageio,并使用 imageio.imread 代替。效果很好!


Swa*_*oop 7

你可以尝试 from scipy.misc.pilutil import imread,而不是from scipy.misc import imread

请查看 GitHub 页面:https : //github.com/amueller/mglearn/issues/2 了解更多详情。


Gal*_*eri 7

扩展 user_3pij 的回答

如果你想使用高于 1.3.0 的 scipy 版本,那么按照imread 函数的 scipy文档中的说明,我们可以使用imageio模块代替。

要以imread复制scipy功能的方式成功使用 imageio功能,imread您可以按照此处描述的说明进行操作(免责声明:我自己还没有尝试过)