Je participe à un projet et je souhaite donc créer l'environnement. Ce que j'ai fait est:
pip install -r requirements.txt
Cette entièrement installé toutes les exigences, y compris Django 1.7.0, Pillow 2.4.0 et quelques autres.
Ensuite, je veux construire la base de données:
python manage.py migrate
Et boum, erreur, je reçois ce qui suit:
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é Pillow. J'ai donc vérifié le paquet installé (avec this technique) et Pillow 2.4.0
IS installé.
Ensuite, j'ai aussi essayé de forcer la réinstallation: pip install --upgrade --force-reinstall Pillow==2.4.0
Mais rien à faire, je reçois la même erreur en exécutant migrate
.
J'utilise python 3.4.0
et Django 1.7.0
sur un Mac OS X 10.6.7 encapsulé dans virtualenv 1.11.6
avec le pip descendu à pip 1.2.1
à cause de certains _ bien connus-encore-non-entièrement-résolus-non-compris-_ (issue avec pip et ssl).
Tout le code ci-dessus est dans virtualenv (bin/activate
terminé).
Avez-vous des idées sur pourquoi ce problème et comment le résoudre?
- - - - - - EDIT - - - - - -
Lorsque j'exécute la commande force-réinstaller ci-dessus (il y a tellement de code que je ne peux pas le coller du tout), même si elle se termine par "Oreiller correctement installé", le code contient quelques avertissements:
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.
J'ai essayé :
J'ai finalement compris que j'étais dans le cas décrit dans la merveilleuse réponse à cet article . En d'autres termes, j'exécute un Mac dont le processeur est capable de 64 bits, mais dont le micrologiciel du noyau est défini sur 32 bits. Ce qui est un problème car le projet sur lequel je travaille a été construit pour 64 bits.
Comme expliqué dans this post , lorsque vous installez python3 à l'aide d'un programme d'installation (DMG), il détectera si le noyau est défini sur 32 bits et installera la version 32 bits de python en conséquence. Mais si vous venez de télécharger le code source du site Web de python et de l’installer avec:
cd Python-3.4.1
./configure
make
Sudo make install
Ensuite, la version 64 bits 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
Ceci fait, tous les problèmes sont résolus avec PIL/Pillow dans virtualenv avec cette version 64 bits de python3. Même le déclassement pip est devenu inutile.
J'avais ce problème sur un Mac avec Python 3.6.4. La solution consistait à désinstaller Pillow 5.1.0 et à installer à la place 5.0.0.
pip uninstall Pillow
pip install Pillow==5.0.0
Avait un problème similaire, et ma solution était beaucoup plus simple:
Apparemment, les paquets PIL et Pillow ne peuvent pas coexister. Si vous souhaitez utiliser Pillow, vous devez d’abord désinstaller PIL, puis installer Pillow..
Si vous êtes sur Mac, vous devez également installer quelques bibliothèques en utilisant brew. Mentionné ci-dessous est la séquence des étapes:
$pip uninstall PIL
$brew install libtiff libjpeg webp little-cms2
$pip install Pillow
Pour vérifier si pillow est installé et prêt à être utilisé, ouvrez l'interpréteur python et essayez d'importer les éléments suivants:
>>> from PIL import Image
* Notez que la bibliothèque dit toujours PIL, mais qu’elle importe maintenant de Pillow au lieu de PIL.
Si vous êtes en mesure d'importer avec succès, vous êtes prêt à intervenir (vous n'aurez probablement pas à vous soucier de la configuration des installations PYTHONPATH ou 32/64 bits)
Source: https://pillow.readthedocs.io/en/latest/installation.html
J'ai eu cette erreur en utilisant le débogueur de PyCharm. Je devais aller dans Paramètres -> 'Interprète de projet' mettre en surbrillance 'Oreiller' et cliquer sur la petite flèche vers le haut à droite pour le mettre à jour. Puis l'erreur a disparu.
J'avais trop le même problème en implémentant Image Upload avec CLoudinary, mais j'ai 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 mien Problème a été résolu!
macOS High Sierra 10.13.6 Ma solution a été
pip3 install Pillow
Ne pas
pip install Pillow
Pour python3, assurez-vous que votre $PYTHONPATH
a le chemin virtualenv
et Au lieu d'exécuter la commande
python manage.py migrate
Courir:
python3 manage.py migrate