Não foi possível importar PILLOW_VERSION de PIL

15

Durante a importação, o Python (anaconda) fornece o seguinte erro:

ImportError: cannot import name 'PILLOW_VERSION' from 'PIL'

Tentei remover pillowe, em seguida, conda installmas o erro persiste. Por favor ajude

Unjum Naveed
fonte
11
Use PIL .__ versão__ em vez disso.
abhilb
@abhilb Estou importando a torchvision, que está chamando de PILLOW_VERSION
Naveed Unjum
11
Está bem. provavelmente verifique a versão do PIL que você possui e a versão necessária para a visão da tocha. Pode haver uma incompatibilidade. PILLOW_VERSION foi descontinuado na versão mais recente do PIL
abhilb
provavelmente você terá que fazer o downgrade da versão do travesseiro
abhilb
Ou atualize a visão da tocha.
Hugo

Respostas:

15

Pillow 7.0.0 removido PILLOW_VERSION, você deve usar __version__em seu próprio código.


Editar (2020-01-16):

Se estiver usando a visão da tocha, isso foi corrigido na v0.5.0 . Consertar:

  1. Exigir torchvision>=0.5.0
  2. Se o travesseiro foi preso temporariamente, remova-o

Informações antigas (2020-01-09):

Se você estiver usando o torchvision, há uma liberação planejada esta semana (semana 2, 2020) para corrigi-la:

As opções são:

  • aguarde o novo lançamento da visão da tocha
  • use a versão principal do torchvision (por exemplo pip install -U git+https://github.com/pytorch/vision)
  • instale a visão da tocha de uma noite, o que também requer um pytorch de uma versão noturna
  • ou instale travesseiro <7 (por exemplo pip install "pillow<7")
Hugo
fonte
9

Faça o downgrade do travesseiro se você não precisar dos recursos mais recentes

pip install pillow<7

Ou para anaconda,

conda install -c anaconda pillow<7
sam
fonte
11
Ou pip install "pillow<7", como 6.2.2 (e 7.0.0) contém correções de segurança: pillow.readthedocs.io/en/stable/releasenotes/6.2.2.html
Hugo
Para o usuário Anaconda, é conda install -c anaconda pillow=6.1.
Tengerye 28/04
6

Eu resolvi modificando functional.pye __init__.pyque são mencionados na mensagem de erro. Erro .

Modifique from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSIONpara from PIL import Image, ImageOps, ImageEnhance, __version__em functional.pyaproximadamente o número da linha 5.

Modifique PILLOW_VERSION = __version__ = _version.__version__para __version__ = __version__ = _version.__version__in __init__.py, aproximadamente a linha nº 22.

Caminho de arquivo:

  • functional.py:C:\Users\UserName\AppData\Local\Programs\Python\Python37\Lib\site-packages\torchvision\transforms\functional.py

  • __init__.py:C:\Users\UserName\AppData\Local\Programs\Python\Python37\Lib\site-packages\PIL\__init__.py

PrasadHeeramani
fonte
Isso funcionou para mim ... Acabei de substituir PILLOW_VERSION por __version__ em functional.py: Your_File_Path\Lib\site-packages\torchvision\transforms\functional.pye, em seguida, não houve erros.
loveR 20/01
isso funcionou para mim. Nada mais funcionou. Um desses pesadelos de 2 horas.
Monica Heddneck
5
  • Atualmente usando torchvision == 0.4.2 e isso resolveu o meu problema.
  • Faça o downgrade do travesseiro para 6,1 e reinicie o notebook Jupyter.

    Usa isto

    conda install pillow=6.1

Maddu Swaroop
fonte
-1

Atualize para quem chega a esta pergunta agora:

Atualize seu travesseiro para a versão mais recente. O problema foi corrigido.

Harsh Jain
fonte
Por favor, tente propor uma solução para currentversões. Eles podem não conseguir atualizá-lo.
veysiertekin