无法导入 scipy.misc.imread

Posted

技术标签:

【中文标题】无法导入 scipy.misc.imread【英文标题】:Cannot import scipy.misc.imread 【发布时间】:2012-03-07 02:33:19 【问题描述】:

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

我想做的只是:

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 也存在,所以我不知道为什么会失败。

【问题讨论】:

不是,我想我只是使用了PIL,然后最后将其转换为数组。 【参考方案1】:

您可能需要安装PIL 或Pillow。

【讨论】:

这对我有帮助,谢谢。我在 OS X 10.8 上使用$sudo pip install PIL 安装了 PIL。 我确实安装了 PIL,from pilutil import * 工作正常。另外,我可以做import PILimport Image。可能是版本问题? 在 Ubuntu 上我必须运行 sudo apt-get install python-pillow 对于python3:pip3 install Pillow 对我来说这在更改为from scipy.misc.pilutil import imread时有效【参考方案2】:

我在尝试使用时收到错误

from scipy.misc import imread

我能够通过首先安装numpy+mkl 然后从Christoph Gohlke's website 安装scipy 来消除错误并使用上述行。

对我来说这是:

pip install numpy-1.11.1+mkl-cp27-cp27m-win32.whl
pip install scipy-0.17.1-cp27-cp27m-win32.whl

您需要为您的系统选择正确的 whl 版本。

另外,请确保 pip 命令安装模块。如果您已经安装了其中的任何一个或多个,则可能需要使用 pip 强制重新安装。

【讨论】:

知道在哪里可以找到关于哪个版本的Pillowscipy 是无缝导入所必需的信息吗? @Momchill 我现在不确定。我的建议是尝试使用 conda 安装枕头和 scipy,检查导入是否有效,并查看安装的 conda 版本。【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

from matplotlib.pyplot import imread
im = imread(image.png)

要阅读没有PILjpg 图像,请使用:

import cv2 as cv
im = cv.imread(image.jpg)

【讨论】:

当从 scipy.misc 导入失败时,您可以通过添加一些信息来改进您的答案,为什么这应该有效。系统会将短代码或错误转储标记为低质量答案。【参考方案5】:

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

【讨论】:

【参考方案6】:

如果您使用scipy 安装了Pillow,但它仍然给您错误,请检查您的scipy 版本,因为它自1.3.0rc1 以来已从scipy 中删除。

宁可安装scipy 1.1.0 by :

pip install scipy==1.1.0

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

【讨论】:

版本 1.2.1 为我工作。安装conda install -c anaconda scipy=1.2.1 是否有正确的方法让脚本 >=1.3.0 以及 Pillow 也是如此?因为我的脚本是用 anaconda 安装的,当我执行 pip install Pillow 时,它显示我的 anaconda 路径中已经有了它。 谢谢!您的解决方案通过以下导入解决了我的问题:from scipy.misc import toimage【参考方案7】:

扩展 user_3pij 的answer

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

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

【讨论】:

【参考方案8】:

Scipy 在 v1.0 中弃用了图像 I/O 功能:

imread 在 SciPy 1.0.0 中已弃用,并将在 1.2.0 中删除。改用 imageio.imread

使用 imageio 模块:

img = imageio.imread(fina)

可能存在一些差异。看 https://imageio.readthedocs.io/en/stable/scipy.html

【讨论】:

【参考方案9】:

你必须像这样导入它

from scipy import misc

这样就可以正常工作了。

【讨论】:

【参考方案10】:

您可以使用this 回答。

在较新版本的scipy 中,imread 已被删除。 您可以改用imageio.imread

import imageio
im = imageio.imread('example.png')

但是如果你想使用 scipy,你必须使用 1.0 或 1.1 版本。 为此,请使用以下命令。

conda install -c anaconda scipy==1.0

然后要使用“imread”,您需要安装Pillow。您可以使用以下命令安装pillow

pip install pillow

【讨论】:

以上是关于无法导入 scipy.misc.imread的主要内容,如果未能解决你的问题,请参考以下文章

mysql 表导入向导无法导入 csv 文件

导入 theano 时出错“无法导入名称 gof”

无法从'@angular/forms'导入“导入FormGroup,FormControl [重复]

无法在春季导入 org.apache.poi,因此无法编译

ImportError:无法导入名称“评估”(来自意外导入评估)

vulfocus无法导入镜像