解決“ImportError: cannot import name 'imresize'”

1. 問題描述

如題,Python代碼報錯,其完整錯誤信息如下:

from scipy.misc import imresize
ImportError: cannot import name 'imresize'

在某些情形下,可以通過安裝Pillow(命令:pip install pillow)來解決,然而自己的環境中已經安裝了Pillow卻還是報上述錯誤,那麼應該是別的原因引起的。



2. 原因分析

通過查找資料得知,imresize已經被最新版本的SciPy庫所棄用,而自己報錯的Python環境的SciPy庫版本爲1.3.0,這也正是出現上述問題的原因。

imresize is deprecated! imresize is deprecated in SciPy 1.0.0, and will be removed in 1.3.0.


---- from https://docs.scipy.org/doc/scipy-1.2.0/reference/generated/scipy.misc.imresize.html



3. 解決方法

換一種寫法,通過numpy來實現,import語句如下所示(當然,仍然需要依賴Pillow庫,可以用語句pip install pillow進行安裝):

from PIL import Image
import numpy as np

imresize使用示例(被註釋的第一行是基於scipy庫的寫法,第二行是基於numpy的寫法):

# im = imresize(im, (h, int(w * aspect_ratio)), interp='bicubic')
im = np.array(Image.fromarray(im).resize((h, int(w * aspect_ratio))))


參考資料:

  • https://docs.scipy.org/doc/scipy-1.2.0/reference/generated/scipy.misc.imresize.html
  • https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/issues/652
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章