【问题标题】:Cannot import scipy.misc.imread无法导入 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,然后最后将其转换为数组。

标签: python scipy


【解决方案1】:

您可能需要安装PILPillow

【讨论】:

  • 这对我有帮助,谢谢。我在 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
            

            【讨论】:

              猜你喜欢
              • 2021-11-20
              • 2018-09-16
              • 2017-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-03-31
              相关资源
              最近更新 更多