Comment installer Python imaging library (PIL)?

33

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

J'ai essayé de faire

sudo apt-get install python-imaging

mais maintenant quand je cours     python selftest.py (un script que j'ai trouvé quelque part sur le site lien ) Je reçois (parmi d'autres messages d'avertissement):

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

Ai-je quelque peu foiré le PIL? Comment puis-je résoudre ce problème?

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

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

(Ce que je tente finalement de faire, c’est d’ajouter un code barre 2D à un code python, et tous les générateurs de codes à barres 2D que je pouvais trouver et qui étaient écrits en python semblaient tous utiliser le PIL).

    
posée David Cary 27.06.2012 - 01:03
la source

7 réponses

24

Il m’est arrivé quelque chose de semblable, J'ai résolu ce problème

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

Et essayez d’y installer via pip install PIL .

Vous trouverez plus d'informations sur le pip ici . En bref, c'est un moyen pratique (et de devenir standard) 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 PIL les recherchera dans / usr / lib / .   Vous devez donc créer des liens symboliques pour que PIL puisse les voir.

Essayez de voir si les libs libjpeg et libz existent dans / usr / lib / x86_64-linux-gnu et créez un lien symbolique de cette manière

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: lien

    
réponse donnée Hernantz 27.06.2012 - 02:30
la source
30

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

Ce qui a fini par travailler pour moi était:

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

Si vous obtenez l'erreur "Vous devez mettre des URI" sources "dans vos sources.list" puis 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 l’emplacement auquel 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!

Mise à jour sept. 2014

Oreiller est une fourche plus moderne de PIL.

#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
    
réponse donnée Nick Woodhams 25.03.2013 - 04:20
la source
13

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

    
réponse donnée Lynob 11.02.2014 - 14:43
la source
4

Les réponses ci-dessus créent des liens pour les bibliothèques x64 dans les emplacements x86. Au lieu de cela, je téléchargerais la 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éinstallez PIL. Si vous utilisez pip:

pip uninstall PIL

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

python setup.py install
    
réponse donnée Salami 24.06.2013 - 22:33
la source
2

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
    
réponse donnée sagar soni 03.01.2015 - 14:37
la source
2

sudo apt-get install python-imaging now installe Pillow not PIL . Comme pour selftest.py , vous devrez peut-être extraire la source pour l'exécuter. Et bien sûr, vous devez installer les dépendances si vous voulez que PIL les supporte, 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
    
réponse donnée aclark 07.02.2015 - 22:39
la source
2

Je devais installer Pillow par pip sur un virtualenv le 14.04 (sans utiliser les packages du système).

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

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

... alors vous pouvez importer PIL .

    
réponse donnée Corey Goldberg 13.03.2015 - 22:54
la source

Lire d'autres questions sur les étiquettes