web-dev-qa-db-fra.com

Comment installer python librairie de création d'image (PIL)?

Comment installer la bibliothèque d'imagerie (PIL) python sur Ubuntu?

J'ai essayé de faire

Sudo apt-get install python-imaging

mais maintenant, quand je lance python selftest.py (un script que j'ai obtenu quelque part sur le http://pythonware.com/products/pil/ site Web), je reçois (entre autres messages d'avertissement):

...
*** JPEG support not installed
*** ZLIB (PNG/Zip) support not installed
...
*** 1 tests of 57 failed.

Ai-je en quelque sorte foiré le PIL - comment résoudre ce problème?

Est-ce que la PIL convient peut-être, mais "selftest.py" n'est pas vraiment le bon programme pour vérifier si PIL est installé correctement - comment puis-je savoir si PIL est correctement installé ou non?

(J'utilise Ubuntu 12.04 LTS "Precise Pangolin").

(Ce que je cherche en définitive à faire, c’est d’ajouter un générateur de code à barres 2D à un code python, et à tous les générateurs de code à barres 2D que j’ai pu trouver et qui ont été écrits en python, tous semblaient utilisez le PIL).

35
David Cary

Quelque chose de semblable m'est arrivé, j'ai résolu de cette façon

Sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

Et essayez-y l’installation via pip install PIL.

Plus d'informations sur ce que pip peut être trouvé ici . En bref, il s’agit d’un moyen pratique (et en cours de normalisation) d’installer des bibliothèques python.

si cela continue à échouer, cela peut être dû au fait que PIL recherche ces bibliothèques dans un chemin différent.

Il s’avère que les installations APT placent les bibliothèques sous /usr/lib/x86_64-linux-gnu et que PIL cherchera les dans /usr/lib/. Vous devez donc créer des liens symboliques pour que PIL les voie.

Essayez de voir si libjpeg et libz libs existent dans /usr/lib/x86_64-linux-gnu et créez un lien symbolique de cette façon.

Sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/
Sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/
Sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

Source: http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on- ubuntu-oneiric-64bits /

25
Hernantz

La solution ci-dessus ne fonctionnait pas pour moi sur Ubuntu 12.10 car libjpeg n'était pas disponible dans le référentiel.

Ce qui a fini par travailler pour moi a été:

Sudo apt-get build-dep python-imaging
Sudo apt-get install libjpeg62 libjpeg62-dev

Si vous obtenez l'erreur "Vous devez mettre des URI" source "dans votre source.list", assurez-vous que votre /etc/apt/sources.list a des entrées deb-src qui correspondent à vos entrées deb. =

Ensuite, vous devez créer un lien symbolique entre les fichiers de leur emplacement réel sur votre serveur et ceux auxquels PIL les attend.

Version 32 bits

Sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.so
Sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
Sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

Version 64 bits

Sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.so
Sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
Sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

Enfin, pip install PIL

Succès!

enter image description here


Mise à jour septembre 2014

Oreiller est une fourche plus moderne de la pilule.

#jpeg support
Sudo apt-get install libjpeg-dev
#tiff support
Sudo apt-get install libtiff-dev
#freetype support
Sudo apt-get install libfreetype6-dev
#openjpeg200support (needed to compile from source)
wget http://downloads.sourceforge.net/project/openjpeg.mirror/2.0.1/openjpeg-2.0.1.tar.gz
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
Sudo apt-get install cmake
cmake .
Sudo make install
#install pillow
pip install pillow
30
Nick Woodhams

Je veux juste ajouter que pip install pil ne fonctionne plus, du moins sur ma machine, vous devez le faire

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

13
Lynob

Les réponses ci-dessus créent des liens pour les bibliothèques x64 dans des emplacements x86. Au lieu de cela, je téléchargerais le source PIL , puis ajouter ces lignes dans setup.py:

    add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
    add_directory(library_dirs, "/lib/x86_64-linux-gnu")

après ces lignes (~ ligne 211)

    # standard locations
    add_directory(library_dirs, "/usr/local/lib")
    add_directory(include_dirs, "/usr/local/include")

    add_directory(library_dirs, "/usr/lib")
    add_directory(include_dirs, "/usr/include")

réinstaller PIL. Si vous utilisez pip:

pip uninstall PIL

Ensuite, à partir du répertoire source, exécutez:

python setup.py install
4
Salami

J'avais besoin d'installer Pillow dans un virtualenv le 14.04 (sans utiliser les packages système).

Pour construire un oreiller à partir de PyPI dans un environnement virtuel (Python 2.7):

$ Sudo apt-get build-dep pillow
$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install pillow

... alors vous pouvez importer PIL.

2
Corey Goldberg

Cette solution fonctionne pour moi sur Ubuntu 14.04 car libjpeg n’était pas disponible dans le référentiel.

Qu'est-ce qui a fini par travailler pour moi

Sudo apt-get build-dep python-imaging
Sudo apt-get install libjpeg62 libjpeg62-dev
2
sagar soni

Sudo apt-get install python-imaging now installe Pillow not PIL . En ce qui concerne selftest.py, vous devrez peut-être consultez la source pour l'exécuter. Et bien sûr, vous devez installer les dépendances si vous souhaitez que PIL les prenne en charge, par exemple.

Sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

Pour exécuter une version de PIL plus récente que celle incluse dans Ubuntu:

pip install Pillow
2
aclark