我正在尝试从 LFW dataset 中获取数据使用 scikit-learn:
from sklearn.datasets import fetch_lfw_people
faces = fetch_lfw_people(min_faces_per_person=60)
这样做时,我收到一条导入错误消息:
The Python Imaging Library (PIL) is required to load data from jpeg files
错误信息表明我需要 pillow安装。所以我从我的 Jupyter 笔记本中安装了 pillow
,如下所示:
!conda install --yes --prefix {sys.prefix} pillow
现在我可以执行 import PIL
,但在尝试从 LFW 数据集获取数据时,我仍然收到相同的错误消息。
我正在使用 Python 3.6。这是完整的轨迹:
ImportError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\datasets\lfw.py in _load_imgs(file_paths, slice_, color, resize)
143 try:
--> 144 from scipy.misc import imread
145 except ImportError:
ImportError: cannot import name 'imread'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\scipy\misc\pilutil.py in <module>()
18 try:
---> 19 from PIL import Image, ImageFilter
20 except ImportError:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\Image.py in <module>()
57 # and should be considered private and subject to change.
---> 58 from . import _imaging as core
59 if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
ModuleNotFoundError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\datasets\lfw.py in _load_imgs(file_paths, slice_, color, resize)
145 except ImportError:
--> 146 from scipy.misc.pilutil import imread
147 from scipy.misc import imresize
~\AppData\Local\Continuum\anaconda3\lib\site-packages\scipy\misc\pilutil.py in <module>()
20 except ImportError:
---> 21 import Image
22 import ImageFilter
ModuleNotFoundError: No module named 'Image'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last) <ipython-input-236-6d1c601c92a3> in <module>()
----> 1 faces = fetch_lfw_people(min_faces_per_person=60)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\datasets\lfw.py in fetch_lfw_people(data_home, funneled, resize, min_faces_per_person, color, slice_, download_if_missing)
333 faces, target, target_names = load_func(
334 data_folder_path, resize=resize,
--> 335 min_faces_per_person=min_faces_per_person, color=color, slice_=slice_)
336
337 # pack the results as a Bunch instance
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\memory.py in __call__(self, *args, **kwargs)
560
561 def __call__(self, *args, **kwargs):
--> 562 return self._cached_call(args, kwargs)[0]
563
564 def __reduce__(self):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\memory.py in _cached_call(self, args, kwargs)
508 'directory %s'
509 % (name, argument_hash, output_dir))
--> 510 out, metadata = self.call(*args, **kwargs)
511 if self.mmap_mode is not None:
512 # Memmap the output at the first call to be consistent with
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\memory.py in call(self, *args, **kwargs)
742 if self._verbose > 0:
743 print(format_call(self.func, args, kwargs))
--> 744 output = self.func(*args, **kwargs)
745 self._persist_output(output, output_dir)
746 duration = time.time() - start_time
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\datasets\lfw.py in _fetch_lfw_people(data_folder_path, slice_, color, resize, min_faces_per_person)
234 target = np.searchsorted(target_names, person_names)
235
--> 236 faces = _load_imgs(file_paths, slice_, color, resize)
237
238 # shuffle the faces with a deterministic RNG scheme to avoid having
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\datasets\lfw.py in _load_imgs(file_paths, slice_, color, resize)
147 from scipy.misc import imresize
148 except ImportError:
--> 149 raise ImportError("The Python Imaging Library (PIL)"
150 " is required to load data from jpeg files")
151
ImportError: The Python Imaging Library (PIL) is required to load data from jpeg files
为什么我会收到此导入错误,我该如何解决?
最佳答案
您需要在您的代码中添加以下行
from PIL import Image
关于python - 导入错误 : The Python Imaging Library (PIL) is required to load data from jpeg files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49074737/