无法导入 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 PIL
和import 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 强制重新安装。
【讨论】:
知道在哪里可以找到关于哪个版本的Pillow
和scipy
是无缝导入所必需的信息吗?
@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)
要阅读没有PIL
的jpg
图像,请使用:
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的主要内容,如果未能解决你的问题,请参考以下文章
无法从'@angular/forms'导入“导入FormGroup,FormControl [重复]