Cannot import scipy.misc.imread
PythonScipyPython Problem Overview
I've seen this problem before with other people, but haven't found a fix.
All I'm trying to do is:
from scipy.misc import imread
and I get
/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
But it's fine when I do from pilutil import *
on its own (no import error). Even .../site-packages/scipy/misc/pilutil.py exists so I've got no idea why this is failing.
Python Solutions
Solution 1 - Python
If you have Pillow
installed with scipy
and it is still giving you error then check your scipy
version because it has been removed from scipy since 1.3.0rc1
.
rather install scipy 1.1.0
by :
pip install scipy==1.1.0
Solution 2 - Python
Solution 3 - Python
The method imread
in scipy.misc
requires the forked package of PIL
named Pillow
. If you are having problem installing the right version of PIL try using imread
in other packages:
from matplotlib.pyplot import imread
im = imread(image.png)
To read jpg
images without PIL
use:
import cv2 as cv
im = cv.imread(image.jpg)
Solution 4 - Python
looking into the documentation it says scipy.misc.imread is deprecated. It says to install imageio, and to use imageio.imread instead. Works great!
Solution 5 - Python
You can try
from scipy.misc.pilutil import imread
instead of from scipy.misc import imread
Please check the GitHub page : https://github.com/amueller/mglearn/issues/2 for more details.
Solution 6 - Python
Expanding on user_3pij's answer
If you want to work with a scipy version that is higher than 1.3.0 then, as instructed in the scipy's documentation of the imread function, we can use the imageio module instead.
To successfully use the imageio imread
function in a way that replicates the functionality of scipy's imread
you can follow the instructions described here (disclaimer: I haven't tried it myself yet)
Solution 7 - Python
Scipy deprecated the image I/O functionality in v1.0 :
> imread is deprecated in SciPy 1.0.0, and will be removed in 1.2.0. Use imageio.imread instead
Using the imageio module:
img = imageio.imread(fina)
There may be some differences. See https://imageio.readthedocs.io/en/stable/scipy.html
Solution 8 - Python
you can use this answer.
In newer versions of scipy
, imread
has been removed.
You can use imageio.imread
instead.
import imageio
im = imageio.imread('example.png')
But if you want to use scipy, you have to use version 1.0 or 1.1. To do this, use the following command.
conda install -c anaconda scipy==1.0
Then to use "imread
" you need to install Pillow
.you can use below command for install pillow
:
pip install pillow
Solution 9 - Python
I received errors when trying to use
from scipy.misc import imread
I was able to remove the errors and use the above line by first installing numpy+mkl
and then installing scipy
from Christoph Gohlke's website.
For me this was:
pip install numpy-1.11.1+mkl-cp27-cp27m-win32.whl
pip install scipy-0.17.1-cp27-cp27m-win32.whl
You will need to pick the correct version of the whl's for your system.
Also, make sure the pip
command installs the modules. If you have any 1 or more of these already installed, you might need to use pip to force a reinstall.
Solution 10 - Python
you have to import it like
from scipy import misc
it will work fine then.