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).
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 /
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.
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
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
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
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
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
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.
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
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