web-dev-qa-db-fra.com

Installation de PIL avec prise en charge JPEG sur Mac OS X

J'ai déjà posté une question concernant ce sujet, et lu d'autres avant, mais aucun n'a résolu mon problème avec succès.

J'essaie d'installer PIL sur Mac OS X Lion, car j'en ai besoin pour une application Django. J'ai également besoin du support JPEG, j'ai donc également besoin d'un décodeur JPEG.

J'ai essayé de télécharger les sources libjpeg et de les compiler, et d'installer PIL, mais il ne reconnaît pas le répertoire.

Donc ce que je voudrais, et je crois que cela existe quelque part, c'est une méthode pour installer PIL et libjpeg avec un installateur de paquet, sans avoir besoin de compilation!

Merci d'avance pour chaque réponse.

37
Vasco Patricio

J'ai installé libjpeg et PIL sur Snow et il a été migré sans problème vers Lion.

Je pense cependant que vous avez le même problème que celui rencontré lors de l'installation de libjpeg 7 sur Snow. La solution pour moi était:

  • Assurez-vous que vous n'utilisez PAS GCC 4.0. Cela signifie que les lignes d'exportation dans votre fichier .bash_profile dont vous aviez besoin pour que MySQLdb fonctionne maintenant doivent disparaître.
  • get ( http://www.ijg.org/files/jpegsrc.v7.tar.gz ) et faites l'habituel ./configure && make && make install (ou tout ce que le readme dit).
  • Avant d'installer PIL mais après avoir installé libjpeg, changez la ligne "JPEG_ROOT = None" dans mon fichier setup.py en "JPEG_ROOT = libinclude ("/usr/local ")"

Je l'ai obtenu d'un commentaire sur ce blog .

Ensuite, vous pouvez réinstaller PIL via pip ou easy_install. Assurez-vous que tous les éléments compilés de votre dernière exécution sont supprimés (vous devez parfois le faire manuellement). J'ai utilisé virtualenv et pip.

18
Density 21.5

Dans notre virtualenv, nous avons trouvé que tout ce que nous devions faire était:

pip uninstall PIL
brew install libjpeg
pip install PIL

ce qui est plus simple que certains de ce qui précède et peut être suffisant pour d'autres avec ce problème aussi. Bien qu'il y ait eu un avertissement xcode sur l'infusion et un avertissement de package setup.py lors de la réinstallation de PIL, tous les tests qui ont précédemment échoué avec des erreurs de décodage jpeg ont été exécutés avec succès après juste l'action rapide ci-dessus.

93
AnnW

Assurez-vous que vous avez homebrew et pip, puis exécutez:

brew install libjpeg
pip install pil
16
Jian

J'ai utilisé le binaire suivant pour installer libpng et libjpeg dans tout le système sur OSX:

libpng & libjpeg pour OSX

Parce que j'avais déjà installé PIL (via pip sur un virtualenv), j'ai couru:

pip uninstall PIL
pip install PIL --upgrade

Cela a résolu le decoder JPEG not available erreur pour moi.

MISE À JOUR:

Si vous rencontrez l'erreur encoder jpeg not available, vous devrez peut-être installer libjpeg. Si vous utilisez Homebrew :

brew install libjpeg
11
zeantsoi

À noter et de bonnes informations à avoir lorsque vous travaillez avec Python et PIL: si vous utilisez virtualenv (et je pense que c'est une très bonne idée), PIL peut ne pas détecter correctement les bibliothèques d'images sur votre système et installer sans prise en charge JPEG/PNG. Utilisez le paquet d'oreiller pour une fourche PIL compatible qui les trouve correctement.

3
kungphu

Pour OSX, pip install PIL avait:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      darwin 2.7.2 (default, Oct 11 2012, 20:14:37)
              [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
--------------------------------------------------------------------
--- TKINTER support available
*** JPEG support not available
--- ZLIB (PNG/Zip) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

Un autre post a conduit à quelque chose qui fonctionne.

Installez les bibliothèques de ici .

3
Max

Si vous avez installé macports, vous devez faire:

$ Sudo port selfupdate
$ Sudo port install py27-pil

C'est plus facile que la méthode easy_install + libjpeg puisque macports installe les bonnes dépendances.

2
Maxime