Impossible d'importer PILLOW_VERSION depuis PIL

15

Lors de l'importation, Python (anaconda) donne l'erreur suivante:

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

J'ai essayé de supprimer pillowet ensuite, conda installmais l'erreur persiste. Veuillez aider

Naveed Unjum
la source
1
Utilisez plutôt PIL .__ version__.
abhilb
@abhilb J'importe torchvision, qui appelle le PILLOW_VERSION
Naveed Unjum
1
D'accord. puis vérifiez probablement la version de PIL que vous avez et la version nécessaire pour torchvision. Il pourrait y avoir un décalage. PILLOW_VERSION est obsolète dans la dernière version de PIL
abhilb
vous devrez probablement rétrograder la version oreiller
abhilb
Ou mettez à niveau torchvision.
Hugo

Réponses:

15

Pillow 7.0.0 supprimé PILLOW_VERSION, vous devez utiliser __version__à la place dans votre propre code.


Modifier (2020-01-16):

Si vous utilisez torchvision, cela a été corrigé dans la version 0.5.0 . Pour corriger:

  1. Exiger torchvision>=0.5.0
  2. Si l'oreiller a été temporairement épinglé, retirez l'épingle

Ancienne info (2020-01-09):

Si vous utilisez torchvision, une version est prévue cette semaine (semaine 2, 2020) pour y remédier:

Les options sont les suivantes:

  • attendre la nouvelle version de torchvision
  • utiliser la version principale de torchvision (par exemple. pip install -U git+https://github.com/pytorch/vision)
  • installer torchvision à partir d'une soirée, ce qui nécessite également un pytorch à partir d'une version nocturne
  • ou installez Pillow <7 (par exemple. pip install "pillow<7")
Hugo
la source
9

Oreiller déclassé si vous n'avez pas besoin des dernières fonctionnalités

pip install pillow<7

Ou pour anaconda,

conda install -c anaconda pillow<7
sam
la source
1
Ou pip install "pillow<7" , comme 6.2.2 (et 7.0.0) contient des correctifs de sécurité: pillow.readthedocs.io/en/stable/releasenotes/6.2.2.html
Hugo
Pour l'utilisateur Anaconda, c'est le cas conda install -c anaconda pillow=6.1.
Tengerye
6

J'ai résolu en modifiant functional.pyet __init__.pyqui sont mentionnés dans le message d'erreur. Erreur .

Modifier from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSIONà from PIL import Image, ImageOps, ImageEnhance, __version__en functional.pyenviron numéro de la ligne 5.

Modifier PILLOW_VERSION = __version__ = _version.__version__à __version__ = __version__ = _version.__version__en __init__.py, ligne n ° 22 environ.

Chemin du fichier:

  • 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
la source
cela a fonctionné pour moi ... je viens de remplacer PILLOW_VERSION par __version__ dans functional.pyà: Your_File_Path\Lib\site-packages\torchvision\transforms\functional.pyet puis il n'y a pas eu d'erreurs.
loveR
cela a fonctionné pour moi. Rien d'autre n'a fonctionné. Un de ces cauchemars de 2 heures.
Monica Heddneck
5
  • J'utilise actuellement torchvision == 0.4.2 et cela a résolu mon problème.
  • Rétrogradez votre oreiller à 6.1 et redémarrez votre ordinateur portable Jupyter.

    Utilisez ceci

    conda install pillow=6.1

Maddu Swaroop
la source
-1

Mise à jour pour quiconque atteint cette question maintenant:

Mettez à niveau votre oreiller vers la dernière version. Le problème a été corrigé.

Harsh Jain
la source
Veuillez essayer de proposer une solution pour les currentversions. Ils ne pourront peut-être pas le mettre à niveau.
veysiertekin Il y a