python / django - " impossible D'utiliser ImageField car Pillow n'est pas installé"

je me joins à un projet, donc je veux mettre en place l'environnement, donc ce que j'ai fait est:

pip install -r requirements.txt

ceci entièrement installé toutes les exigences, y compris django 1.7.0, Pillow 2.4.0 et quelques autres.

alors je veux construire la base de données:

python manage.py migrate

et boom, erreur, je reçois le suivant :

CommandError: System check identified some issues:

ERRORS:
stu.chan.icon: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".
stu.chan.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".
stu.Piec.icon: (fields.E210) Cannot use ImageField because Pillow is not installed.
    HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install pillow".

... comme si je n'avais pas installé de coussin. Donc j'ai vérifié le paquet installé (avec cette" technique ), et Pillow 2.4.0 est installé.

ensuite, j'ai aussi essayé de forcer la réinstallation: pip install --upgrade --force-reinstall Pillow==2.4.0

mais, rien à faire j'obtiens la même erreur en lançant migrate .

j'utilise python 3.4.0 et django 1.7.0 sur un mac OS X 10.6.7 enveloppé dans virtualenv 1.11.6 avec PEP déclassé à pip 1.2.1 (en raison de certains bien connu-encore-pas-entièrement résolu-ni-compris numéro avec PEP et ssl).

tout le code ci-dessus est dans virtualenv ( bin/activate fait).

avez-vous une idée de pourquoi ce problème et comment le résoudre?

- - - - - - MODIFIER - - - - - -

quand j'exécute la commande de force-réinstaller ci-dessus, (tant de code est sorti que je ne peux pas tout coller mais) bien qu'il se termine par " installé avec succès Pillow", il y a quelques avertissements dans le code:

building 'PIL._imaging' extension
 (blabla code)
    _imaging.c:975:13: warning: array index of '1' indexes past the end of an array (that contains 1 elements) [-Warray-bounds]
        value = PyTuple_GET_ITEM(xy, 1);
                ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/python3.4m/tupleobject.h:58:34: note: instantiated from:
    #define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i])
                                     ^
    /usr/local/include/python3.4m/tupleobject.h:27:5: note: array 'ob_item' declared here
        PyObject *ob_item[1];
        ^
    1 warning generated.

(blabla code)
   libImaging/Unpack.c:867:1: warning: unused function 'copy3' [-Wunused-function]
    copy3(UINT8* out, const UINT8* in, int pixels)
    ^
    1 warning generated.
10
demandé sur Community 2014-09-04 13:37:55

7 réponses

j'avais ce problème sur un Mac avec Python 3.6.4. La solution était de désinstaller Pillow 5.1.0 et d'installer 5.0.0.

pip uninstall Pillow
pip install Pillow==5.0.0
17
répondu PatrickReagan 2018-04-17 00:08:02

j'ai essayé:

  • réinstaller globaly PIL en compilant "Imaging-1.1.7" en utilisant quelques instructions ici , mais n'a pas fonctionné
  • réinstaller L'oreiller et sa dépendance globalement en utilisant ce lien , mais n'a pas fonctionné
  • réinstaller GCC4.2 en utilisant ce lien , mais il n'a pas fonctionné

j'ai finalement compris que j'étais dans le cas décrit dans la réponse merveilleuse à ce post . En d'autres termes, j'exécute un mac dont le CPU est capable de 64bit mais dont le firmware du noyau est réglé à 32bit. Ce qui est un problème car le projet sur lequel je travaille a été construit pour 64bit.

comme expliqué dans que post , lorsque vous installez python3 en utilisant un installateur (DMG), il reniflera si le noyau est réglé à 32 bits et installera la version 32bit de python 3 en conséquence. Mais si il vous suffit de télécharger la source tarball à partir du site Web de python et de l'installer avec:

cd Python-3.4.1
./configure
make
sudo make install

alors la version 64bit de python3 devrait être installée. Que vous pouvez vérifier en faisant:

file /usr/local/bin/python3
/usr/local/bin/python3: Mach-O 64-bit executable x86_64

Cela fait, tous les problèmes sont partis avec PIL/Pillow dans le virtualenv en utilisant cette version 64bit de python3. Même le déclassement du pip est devenu inutile.

5
répondu lapin 2017-05-23 12:25:39

j'ai eu cette erreur en utilisant le débogueur de PyCharm. J'ai dû aller sur Paramètres->'Project Interpreter' mettre en surbrillance 'Pillow' et appuyer sur la petite flèche vers le haut à droite pour la mettre à jour. Ensuite, l'erreur a disparu.

1
répondu slashdottir 2017-07-14 17:07:57

j'étais trop obtenir le même problème tout en implémentant le téléchargement D'Image en utilisant CLoudinary , mais trouvé la réponse ci-dessus, mais d'une autre manière.

 sudo pip uninstall PIL

 sudo pip uninstall Pillow

 sudo pip install Pillow

après que le problème de mine a été résolu !

1
répondu MD Shahrouq 2017-08-15 10:29:54

avait un problème similaire, et ma solution était beaucoup plus simple:

apparemment, les paquets PIL et Pillow ne peuvent pas coexister. si vous voulez utiliser Pillow vous devez d'abord désinstaller PIL et ensuite installer Pillow .

si vous êtes sur Mac, vous devez installer quelques bibliothèques en utilisant brew. La séquence des étapes est mentionnée ci-dessous:

$pip uninstall PIL
$brew install libtiff libjpeg webp little-cms2
$pip install Pillow

pour vérifier si le coussin est installé et prêt à l'emploi, Ouvrir Python interprète et essayer d'importer ce qui suit:

>>> from PIL import Image

*notez que la bibliothèque dit toujours PIL mais maintenant elle importe de Pillow au lieu de PIL.

si vous êtes en mesure d'importer avec succès alors vous êtes bon à aller (selon toute probabilité vous n'aurez pas à vous soucier de définir PYTHONPATH ou 32/64-bit installations)

Source: https://pillow.readthedocs.io/en/latest/installation.html

1
répondu The Wanderer 2017-11-19 05:51:58

pour python3 assurez-vous que votre $PYTHONPATH a le chemin virtualenv et Au lieu d'exécuter la commande

python manage.py migrate

Run:

python3 manage.py migrate
0
répondu Arun Selvakumar Govindaraj 2018-08-11 04:36:22

macOS High Sierra 10.13.6 Ma solution était

pip3 install Pillow

Pas

pip install Pillow
0
répondu Nick Patsiuk 2018-08-28 18:11:20