Не удалось импортировать PILLOW_VERSION из PIL

15

При импорте Python (анаконда) выдает следующую ошибку:

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

Я попытался удалить, pillowа затем, conda installно ошибка не исчезла. Пожалуйста помоги

Навид Унюм
источник
1
Вместо этого используйте PIL .__ version__.
abhilb
@abhilb Я импортирую torchvision, которая вызывает PILLOW_VERSION
Naveed Unjum
1
Хорошо. тогда, вероятно, проверьте версию PIL, которая у вас есть, и версию, необходимую для torchvision. Там может быть несоответствие. PILLOW_VERSION устарела в последней версии PIL
abhilb
вероятно, вам придется понизить версию подушки
abhilb
Или обновить Torchvision.
Хьюго

Ответы:

15

Подушка 7.0.0 удалена PILLOW_VERSION, __version__вместо нее следует использовать собственный код.


Изменить (2020-01-16):

При использовании torchvision это было исправлено в v0.5.0 . Исправить:

  1. требовать torchvision>=0.5.0
  2. Если подушка была временно закреплена, удалите ее

Старая информация (2020-01-09):

Если используется torchvision, на этой неделе планируется выпустить релиз (2-я неделя, 2020 г.), чтобы исправить это:

Варианты:

  • ждать нового выпуска torchvision
  • используйте основную версию torchvision (например pip install -U git+https://github.com/pytorch/vision)
  • установить torchvision от ночной, которая также требует pytorch от ночной версии
  • или установить подушку <7 (например. pip install "pillow<7")
Хьюго
источник
9

Понижение подушки, если вам не нужны последние функции

pip install pillow<7

Или для анаконды,

conda install -c anaconda pillow<7
Сэм
источник
1
Или pip install "pillow<7", как 6.2.2 (и 7.0.0) содержит исправления безопасности: pillow.readthedocs.io/en/stable/releasenotes/6.2.2.html
Hugo
Для пользователя Anaconda это так conda install -c anaconda pillow=6.1.
Tengerye
6

Я решил путем изменения functional.pyи __init__.pyкоторые упоминаются в сообщении об ошибке.Ошибка .

Изменить from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSIONна from PIL import Image, ImageOps, ImageEnhance, __version__вfunctional.py ках номера строки 5.

Изменить PILLOW_VERSION = __version__ = _version.__version__на __version__ = __version__ = _version.__version__в__init__.py ок не выравнивают нет 22.

Путь файла:

  • 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
источник
это сработало для меня ... я просто заменил PILLOW_VERSION на __version__ в functional.py: Your_File_Path\Lib\site-packages\torchvision\transforms\functional.pyи тогда не было никаких ошибок.
loveR
это сработало для меня. Больше ничего не получалось. Один из тех двухчасовых кошмаров.
Моника Хедднек
5
  • В настоящее время использую torchvision == 0.4.2, и это решило мою проблему.
  • Понизьте вашу подушку до 6.1 и перезапустите ноутбук Jupyter.

    Использовать этот

    conda install pillow=6.1

Мадду Сваруп
источник