11
votes

Python Pil ne peut pas localiser mon "libjpeg"

Je ne peux pas utiliser Pil car il ne peut pas trouver mon libjpeg!

Premièrement, j'ai installé Pil par défaut. Et quand j'ai couru le selftestest.py code>, il m'a donné: p> xxx pré>

alors, j'ai suivi des instructions en ligne pour changer de setup.py code> à p> xxx pré>

car quand i localiser libjpeg code>, c'est ce que je reçois: p>

locate libjpeg 
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.0.0
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.0.0
/usr/share/doc/libjpeg-6b
/usr/share/doc/libjpeg-6b/README
/usr/share/doc/libjpeg-6b/usage.doc
/var/cache/yum/base/packages/libjpeg-6b-37.i386.rpm
/var/cache/yum/base/packages/libjpeg-6b-37.x86_64.rpm


0 commentaires

5 Réponses :


3
votes

Vous avez également besoin des en-têtes de libjpeg, non seulement la bibliothèque elle-même. Ces packages sont généralement appelés quelque chose se terminant par des en-têtes ou de dev, selon la distribution que vous avez.


5 commentaires

Merci. Comment puis-je obtenir les en-têtes? J'ai une distribution Centos. J'ai fait "localiser libjpeg" et je n'ai trouvé rien de fin en.


Ils semblent être appelés libjpeg-devel sur Centos.


Utilisez l'outil de gestion des packages pour installer libjpeg-devel . Remarque Il peut y avoir d'autres packages -Devel que vous devez installer pour d'autres formats, par exemple. libpng-devel .


Je pense que Pil utilise Zlib pour PNG, si je me souviens bien. Mais je pouvais malemberter. Il a cependant des documents. :)


miam Installez libjpeg-devel - trié le problème pour moi



19
votes

Il y a au moins 3 ensembles d'en-tête que vous souhaitez installer. 1 D'autres si vous souhaitez traiter avec TIFF

Freeterype, Libjpeg, Zlib Tout ce qui sera dans les packages suivants sur Centos: P>

== 32 bit: zlib-devel.i386 libjpeg-devel.i386 FreeType-Devel.I386 P>

== 64 bit: zlib-devel.x86_64 libjpeg-devel.x86_64 Freeetype-Devel.x86_64 P>

Comme vous l'avez fait avant de vouloir modifier les variables suivantes dans le fichier Setup.py: P>

FreeType_root Jpeg_root Zlib_root p>

Définition des valeurs à / usr / lib ou / usr / lib64 basée sur votre plate-forme. Une fois que vous, vous voudrez probablement exécuter P>

python setup.py build --force
python setup.py install


1 commentaires

Merci! Fwiw, c'est ce que j'ai fait (sur une boîte 64 bits): sudo yum installer zlib-devel.x86_64 libjpeg-devel.x86_64 freeType-devel.x86_64 alors sudo pip installation PIL < / code> (cela nécessite que vous ayez déjà installé Gestionnaire de packages PIP.)



0
votes

Aujourd'hui, je faisais face au même problème et j'ai trouvé la solution. Fondamentalement, cela implique de retirer le PIL, d'installer LipJpeg via Fink et de réinstaller le PIL.

J'ai écrit un Article Dire étape par étape Comment faire cela. Si intéressant, vérifiez cela.


0 commentaires

3
votes

J'ai eu le même problème. Dans mon cas, je dois définir: xxx

au lieu de: xxx

bonne chance.


0 commentaires

1
votes

Vous pouvez également essayer d'utiliser oreiller au lieu de PIL.

oreiller est une fourchette de pilotage pour "favoriser le développement actif de PIL". Dans les versions 1.7.0 et 1.7.1, ils ont apporté des modifications à soutenir multi-arcs (voir le Changelog ).


1 commentaires

le même problème avec oreiller; (et la solution jpeg_root = "/ usr / lib64 /" n'aide pas l'oreiller