Nie można zaimportować PILLOW_VERSION z PIL

15

Podczas importowania Python (anakonda) podaje następujący błąd:

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

Próbowałem usunięcie pillow, a następnie conda installale powtarzał błędów. Proszę pomóż

Naveed Unjum
źródło
1
Zamiast tego użyj PIL .__ wersja__.
abhilb
@abhilb Importuję Torchvision, który nazywa się PILLOW_VERSION
Naveed Unjum
1
Ok. następnie prawdopodobnie sprawdź wersję PIL, którą posiadasz i wersję potrzebną do monitorowania pochodni. Może wystąpić niedopasowanie. Wersja PILLOW_VERSION jest przestarzała w najnowszej wersji PIL
abhilb
prawdopodobnie będziesz musiał obniżyć wersję poduszki
abhilb
Lub zaktualizuj Torchvision.
Hugo

Odpowiedzi:

15

Poduszka 7.0.0 została usunięta PILLOW_VERSION, __version__zamiast tego należy użyć własnego kodu.


Edytuj (2020-01-16):

Jeśli korzystasz z Torchvision, zostało to naprawione w wersji 0.5.0 . Naprawić:

  1. Wymagać torchvision>=0.5.0
  2. Jeśli poduszka została tymczasowo przypięta, usuń zawleczkę

Stare informacje (2020-01-09):

Jeśli używasz Torchvision, w tym tygodniu planowane jest wydanie (2. tydzień 2020), aby to naprawić:

Dostępne są następujące opcje:

  • poczekaj na nową wersję Torchvision
  • użyj głównej wersji Torchvision (np. pip install -U git+https://github.com/pytorch/vision)
  • zainstaluj torchvision z nocnej, co również wymaga pytorch z nocnej wersji
  • lub zainstaluj Pillow <7 (np. pip install "pillow<7")
Hugo
źródło
9

Zmień poduszkę, jeśli nie potrzebujesz najnowszych funkcji

pip install pillow<7

Lub dla anakondy,

conda install -c anaconda pillow<7
sam
źródło
1
Lub pip install "pillow<7", ponieważ 6.2.2 (i 7.0.0) zawiera poprawki bezpieczeństwa: pillow.readthedocs.io/en/stable/releasenotes/6.2.2.html
Hugo
Dla użytkownika Anaconda tak jest conda install -c anaconda pillow=6.1.
Tengerye
6

Rozwiązałem problem, modyfikując functional.pyi __init__.pyktóre są wymienione w komunikacie o błędzie. Błąd .

Zmień from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSIONna mniej więcej from PIL import Image, ImageOps, ImageEnhance, __version__w functional.pylinii 5.

Zmień PILLOW_VERSION = __version__ = _version.__version__na __version__ = __version__ = _version.__version__in __init__.py, około linii nr 22.

Ścieżka pliku:

  • 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
źródło
ten pracował dla mnie ... Po prostu zastąpione PILLOW_VERSION przez __version__ w functional.pyna: Your_File_Path\Lib\site-packages\torchvision\transforms\functional.pya potem nie było żadnych błędów.
loveR
to zadziałało dla mnie. Nic innego nie działało. Jeden z tych 2 godzinnych koszmarów.
Monica Heddneck
5
  • Obecnie używam torchvision == 0.4.2 i to rozwiązało mój problem.
  • Zmień poduszkę na wersję 6.1 i uruchom ponownie notebook Jupyter.

    Użyj tego

    conda install pillow=6.1

Maddu Swaroop
źródło