Installation de PIL avec pip


349

J'essaie d'installer PIL (la bibliothèque d'imagerie Python) à l'aide de la commande:

sudo pip install pil

mais je reçois le message suivant:

Downloading/unpacking PIL
  You are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.
  Downloading PIL-1.1.7.tar.gz (506kB): 506kB downloaded
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    --- using frameworks at /System/Library/Frameworks
    building '_imaging' extension
    clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o
    unable to execute clang: No such file or directory
    error: command 'clang' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/private/tmp/pip_build_root/PIL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-AYrxVD-record/install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

.
.
.
.

copying PIL/XVThumbImagePlugin.py -> build/lib.macosx-10.8-intel-2.7

running build_ext

--- using frameworks at /System/Library/Frameworks

building '_imaging' extension

creating build/temp.macosx-10.8-intel-2.7

creating build/temp.macosx-10.8-intel-2.7/libImaging

clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o

unable to execute clang: No such file or directory

error: command 'clang' failed with exit status 1

----------------------------------------
Cleaning up

Pourriez-vous m'aider à installer PIL ??


Avez-vous installé Xcode, puis installé les outils de ligne de commande de Xcode? Il semble que vous n'ayez pas le compilateur clang.
Fiver

Réponses:


586
  1. Installez Xcode et Xcode Command Line Tools comme indiqué.
  2. Utilisez plutôt Pillow, car PIL est fondamentalement mort. L'oreiller est une fourchette maintenue de PIL.

https://pypi.python.org/pypi/Pillow/2.2.1

pip install Pillow

Si vous avez installé les deux Pythons et que vous souhaitez l'installer pour Python3:

python3 -m pip install Pillow

5
J'ai reçu une clangerreur sur OSX Mavericks lorsque j'ai essayé ceci, mais j'ai trouvé que cette réponse y contribuait: stackoverflow.com/a/22322645/16959
Jason Sperske

34
Bien que cette réponse soit valide et utile, elle ne répond vraiment pas à la question. Pour ceux d'entre nous qui sont en train de réhabiliter d'anciens projets qui peuvent nécessiter de remplir une dépendance PIL juste pour que nous puissions trouver la prochaine chose qui va se casser, nous avons en fait en quelque sorte besoin d'obtenir la dépendance réelle (et parfois même d'avoir besoin d'une version spécifique que quelqu'un a construit un hack).
Namey

3
@Namey Le portage du code PIL existant vers Pillow peut être fait facilement . Port PIL à oreiller . Pillow est basé sur le code PIL et a évolué pour devenir une version meilleure, moderne et plus conviviale de PIL.
GiriB

7
@GiriB Merci pour la mise à jour. Mon point principal était qu'il y a souvent des cas où vous commencez à travailler sur un code de production hérité où il y a 20 anciennes dépendances, dont PIL pourrait être une, et vous devez déboguer quelque chose pour corriger le code de production. Dans ce cas, vous ne voulez certainement pas avoir à écrire des ports pour le code connecté à ~ 10 bibliothèques différentes sur votre build de développement juste pour commencer à déboguer l'erreur sur une ligne qui se produit dans l'environnement de production. J'espère que cela clarifie.
Namey

J'essaie d'utiliser une bibliothèque qui utilise import Image. Existe-t-il un moyen pour que Pillow fournisse une image?
AnnanFay

60

Cela fonctionne pour moi:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

9
Sur les plates-formes 64 bits, le chemin lié doit être différent - par exemple /usr/lib/x86_64-linux-gnu/libfreetype.so. Pour une solution plus indépendante de l'architecture, créez les liens comme# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian

Toujours le même problème pour les en-têtes d'imagerie: _imagingft.c: 73: 31: erreur fatale: freetype / fterrors.h: Aucun fichier ou répertoire de ce type #include <freetype / fterrors.h> Vous devez donc installer python-imaging throught pip
c24b

Toujours un problème dans les en-têtes freetype comme mentionné ici [ askubuntu.com/questions/507459/… ? SOlution: cd / usr / include ln -s freetype2 freetype
c24b

1
sous ubuntu 14.04 1 lien symbolique supplémentaire est nécessaire sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha

1
a bien fonctionné pour moi, le secret était le --ILI non-vérifié --allow-all-external
eusoubrasileiro

54

C'est très simple en utilisant apt install utilisez cette commande pour le faire

sudo apt-get install python-PIL

ou

sudo pip install pillow

ou

sudo easy_install pillow

2
n'oubliez pas de redémarrer votre serveur notebook ipython si vous en exécutez un.
shousper

sudo pip install pillow a fonctionné pour moi. sudo apt-get install python-PIL ne l'a pas fait.
Yu Shen

1
Je l'ai trouvé sensible à la casse: sudo apt-get install python-PIL => Échec (aucun package trouvé) sudo apt-get install python-pil => Worked
Clarkey252

35

Sur Mac OS X, utilisez cette commande:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz

travaillé sur debian jessy aussi !, juste besoin d'installer python-dev au préalable :)
Agey

1
J'ai dû installer libjpeg d'abord: brew install libjpeg
Pierre F

Enfin une vraie solution. Mon Mac n'a pas apt-get: p, et je veux quand même installer dans un virtualenv.
sudo

utilisez sudo pip install Pillow - comme ci-dessous.
johndpope


26

J'ai obtenu la réponse d'une discussion ici :

j'ai essayé

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

et ça a marché.


8
Pensez à utiliser ceci: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgLa raison pour laquelle j'ai utilisé celui-ci est parce que c'est l'URL répertoriée par le package et sur pypi.python.org/pypi/PIL
Tom Myddeltyn

1
J'ai reçu un avertissement pour utiliser HTTPS au lieu de HTTP. Après avoir changé l'URL, cela a très bien fonctionné.
AnnanFay

@TomMyddeltyn Cela a presque fonctionné sauf que j'ai eu une erreur de compilation où il ne peut pas trouver X11 / Xlib.h
Peu fréquent

@Uncommon Je ne sais pas quel est le problème, désolé.
Tom Myddeltyn

21

Installer

pip install Pillow

Ensuite, importez simplement votre fichier comme,

from PIL import Image

J'utilise Windows. Ça marche pour moi.

REMARQUE :

Pillow est un remplacement fonctionnel de la bibliothèque d'imagerie Python. Pour exécuter votre code compatible PIL existant avec Pillow, il doit être modifié pour importer le module de création d'image à partir de l'espace de noms PIL au lieu de l'espace de noms global.

c'est-à-dire changer:

import Image

à:

from PIL import Image

https://pypi.org/project/Pillow/2.2.1/


Merci! En lisant le nom «PIL» dans from PIL import Imageje n'ai jamais pu deviner que le nom de cette bibliothèque était «Pillow». Je suis également sous Windows et votre solution a fonctionné pour moi.
Marcos Buarque

Pillow est un remplacement fonctionnel de la bibliothèque d'imagerie Python. Pour exécuter votre code compatible PIL existant avec Pillow, il doit être modifié pour importer le module de création d'image à partir de l'espace de noms PIL au lieu de l'espace de noms global. -À- dire le changement: import Imageà from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

Merci pour les informations supplémentaires sur bckground!
Marcos Buarque

12

Je suppose que vous êtes sur Mac. Voir Comment puis-je installer PIL sur mac os x 10.7.2 Lion

Si vous utilisez [homebrew] [], vous pouvez installer le PIL avec juste brew install pil. Vous devrez peut-être ensuite ajouter le répertoire d'installation ( $(brew --prefix)/lib/python2.7/site-packages) à votre PYTHONPATH, ou ajouter l'emplacement du répertoire PIL lui-même dans un fichier appelé PIL.pthfichier dans l'un de vos répertoires de sites-packages, avec le contenu:

/usr/local/lib/python2.7/site-packages/PIL

( en supposant brew --prefixest /usr/local).

Alternativement, vous pouvez simplement le télécharger / construire / installer à partir de la source:

# download
curl -O -L http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user

J'ai exécuté ce qui précède tout à l'heure (sur OSX 10.7.2, avec XCode 4.2.1 et System Python 2.7.1) et cela s'est bien passé, bien qu'il y ait une possibilité que quelque chose dans mon environnement ne soit pas par défaut.

[homebrew]: http://mxcl.github.com/homebrew/ "Homebrew"


Bien que cela explique comment installer pil, cela ne se fait pas via pipcomme OP a essayé initialement. Je trouve que l'utilisation abondante brewdu Web ces jours-ci n'est pas optimale. brewva installer un peu de surcharge en fonction de ce que vous voulez qu'il fasse. pipserait donc probablement le meilleur choix pour les modules python.
mknaf

11

Ces jours-ci, tout le monde utilise Pillow, une fourchette PIL conviviale, sur PIL.

Au lieu de: sudo pip install pil

Faire: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow

Je recommanderais de ne jamais le faire sudo pip install .... Cela pourrait finir par casser l'installation de Python sur votre système, ce qui pourrait affecter les applications de votre système. Essayez d'utiliser les environnements virtuels Anaconda , venv ou Docker.
n1k31t4

11

Pour Ubuntu, PIL ne fonctionne plus. J'ai toujours:

Aucune distribution correspondante trouvée pour PIL

Installez donc l'imagerie python:

sudo apt-get install python-imaging

6

J'ai le même problème, mais il est résolu avec l'installation de python-dev.

Avant d'installer PIL, exécutez la commande suivante:

sudo apt-get install python-dev

Installez ensuite PIL:

pip install PIL

10
Cela n'a pas fonctionné pour moi sur Ubuntu 14. se pip install piltraduit par No distributions at all found for PIL, que j'installe python-dev d'abord ou non.
aliteralmind

5

J'ai eu quelques erreurs lors de l'installation. Juste au cas où quelqu'un aurait ça aussi. Malgré cela, j'étais déjà assis sous l'administrateur, mais pas root.

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PIL'

Storing debug log for failure in /Users/wzbozon/Library/Logs/pip.log

L'ajout de "sudo" a résolu le problème, avec sudo cela a fonctionné:

~/Documents/mv-server: $ sudo pip install Pillow


5

J'ai essayé toutes les réponses, mais j'ai échoué. Obtenez directement la source sur le site officiel, puis générez le succès de l'installation.

  1. Accédez au site http://www.pythonware.com/products/pil/#pil117
  2. Cliquez sur "Python Imaging Library 1.1.7 Source Kit" pour télécharger la source
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Essaye ça:

sudo pip install PIL --allow-external PIL --allow-unverified PIL

2
Bien que cette réponse soit correcte, veuillez ajouter quelques explications. Il est plus important d'impartir la logique sous-jacente que de simplement donner le code, car cela aide l'OP et d'autres lecteurs à résoudre eux-mêmes ce problème et des problèmes similaires.
CodeMouse92

Notez que cette commande a expiré pour moi. Quoi qu'il en soit, il sera obsolète dans quelques semaines. sudo pip install --allow-external --allow-unverified PIL PILpeut également fonctionner pour l'instant.
Statistiques d'apprentissage par l'exemple

3
--allow-externalet --allow-unverifiedsont tous deux obsolètes. pip install pillowest la bonne réponse.
Dorian

1
La réponse que j'ai postée m'a été suggérée par le stderr. Donc, bien que ma réponse ne soit plus à jour, ce n'était pas au moment où je l'ai écrite. Je m'excuse également pour mon message adressé à JasonMc92 (qui a depuis été supprimé). Mon ton était décalé, mais mon sentiment demeure. Il y a quelque chose de désagréable à troller la première page et à copier / coller votre note sur la "transmission de la logique sous-jacente". Peut-être que vous êtes à la chasse aux badges, et je suppose que c'est bien, mais pour des raisons de cohérence, veuillez laisser un commentaire sur toutes les autres réponses similaires à cette question qui ne sont pas logiquement sous-jacentes.
alfonso


3
  • Vous devez d'abord exécuter ceci sudo apt-get build-dep python-imagingqui vous donnera toutes les dépendances dont vous pourriez avoir besoin

  • Ensuite, exécutez sudo apt-get update && sudo apt-get -y upgrade

  • Suivi par sudo apt-get install python-pip

  • Et enfin installer Pil pip install pillow


2

Recherchez sur le gestionnaire de paquets avant de l'utiliser pip. Sur Arch linux, vous pouvez obtenir PIL parpacman -S python2-pillow


0

Il existe un autre outil de package Python appelé conda . Conda est préféré (je crois) à pip quand il y a des bibliothèques qui ont besoin d'installer C ++ et d'autres liaisons qui ne sont pas du pur Python. Conda inclut également le pip dans son installation afin que vous puissiez toujours utiliser le pip, mais vous bénéficiez également des avantages du conda.

Conda installe également IPython , pil et de nombreuses autres bibliothèques par défaut. Je pense que vous l'aimerez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.