web-dev-qa-db-ja.com

AttributeError:モジュール「PIL.Image」には属性「register_extensions」がありません

私はgoogle-colabでfast.aiのlesson1を実行していました。ラインに来たとき

img = plt.imread(f'{PATH}valid/cats/{files[0]}')

plt.imshow(img);

画像は表示されませんでした。代わりに、エラーが発生しました:

 AttributeError:モジュール 'PIL.Image'には属性 'register_extensions'がありません

これは何が原因ですか?

この問題に遭遇したとき、私はGoogle Colabにいました。

torchをインストールするコード、追加:

!pip install pillow==4.1.1
%reload_ext autoreload
%autoreload

%autoreload はすべてのモジュールをリロードするため、カーネルの再起動は不要です。

クレジットは このフォーラム投稿 に送られます。

10
Tom Hale

モジュールpillowおよび他のすべてのfastaiセットアップをロードした後、私のために働いたのはこれです:

# workaround 
from PIL import Image
def register_extension(id, extension): Image.EXTENSION[extension.lower()] = id.upper()
Image.register_extension = register_extension
def register_extensions(id, extensions): 
  for extension in extensions: register_extension(id, extension)
Image.register_extensions = register_extensions

ランタイムの再起動は不要になりました。

7
stason

私にとって、pipを使用して新しいPillowをインストールし、それを使用するコードを実行した後、メニューから「Runtime/Restart runtime…」を使用してランタイムを再起動すると、問題が修正されました。

7
Mohamed Jihad

コラボノートブックの開始時にこれらの3行を実行します

!pip install Pillow==4.0.0
!pip install PIL
!pip install image

私も同じ問題に苦労していました。しかし、これは私にとってはうまくいきました。 https://pillow.readthedocs.io/en/3.1.x/reference/Image.html

4
van neilsen

インストールされている枕のバージョンは最新ではありません。以下を実行します。

import PIL
print(PIL.PILLOW_VERSION)

おそらく4.0.0。その場合、次のコマンドを実行します。

!pip uninstall Pillow
!pip install Pillow==5.3.0

次に、ランタイムを再起動します(CTRL + M .、 または Runtime --> Restart runtimeメニューから)。最初のコマンドセットを再度実行して、現在のPILバージョンが5.3.0であることを確認します。

3
Sia

次回、colab VMを起動します。必ず次の2行をコメントアウトしてください(つまり、実行しないでください)

#%reload_ext autoreload        <------------— comment out 
#%autoreload 0                 <------------— comment out
%matplotlib inline

念のため、PILも再インストールしました

!pip install --no-cache-dir -I pillow
2
Marzieh Heidari

すべてのセットアップ後に次を追加した後、私にとってはうまくいきました:

from PIL import Image

def register_extension(id, extension): Image.EXTENSION[extension.lower()] = id.upper()
Image.register_extension = register_extension
def register_extensions(id, extensions): 
  for extension in extensions: register_extension(id, extension)
Image.register_extensions = register_extensions

セクションAnalyzing Results: Looking At Picturesの次の関数を変更しました

def load_img_id(ds, idx): return np.array(PIL.Image.open(PATH+ds.fnames[idx]))

def load_img_id(ds, idx): return np.array(Image.open(PATH+ds.fnames[idx]))
1
anshukira

おそらくファイルの形式。 「.tiff」から「.png」に変更しました。できます。モジュールにはTIFFデコーダーがありません。

0
Jerry