Comment installer PIL dans Ubuntu 11.04?
Je vois cette question posée à tous sur internet, et j'ai essayé de les suivre tous, mais je ne peux toujours pas PIL au travail.
J'ai essayé symboliquement liaison la zlib, jpeg, etc. les bibliothèques via:
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
J'ai essayé de l'édition de la setup.py
fichier, en ajoutant cette ligne:
add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
En fait, l'exécution $ sudo python setup.py install
montre que JPEG, ZLIB/PNG, etc. le support est Disponible. (Je suis de l'installer pour le 2.5 et 2.7, travaille en ni)
sudo python2.5 setup.py install
running install
running build
running build_py
running build_ext
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.5.6 (r256:88840, Feb 1 2012, 15:55:08)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available
Mais après tout, je encore obtenir un decoder %s not available
erreur.
Je suis à bout de ressources. Autre chose que j'ai peut-être raté?
Mon environnement:
64 bits Ubuntu 11.04 cours d'exécution dans une VM VirtualBox.
Voici ce que je fais pour tester si PIL fonctionne ou pas
$ python
>>> from PIL import Image
>>> im = Image.open("photo.jpg")
>>> im.rotate(45)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1359, in rotate
self.load()
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFile.py", line 189, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 385, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder zip not available
>>>
source d'informationauteur john2x
Vous devez vous connecter pour publier un commentaire.
Comme toujours, utilisez le gestionnaire de paquets:
Il va traiter tout pour vous. Le les paquets sont disponibles.
Manuellement l'installation, dans n'importe quelle distribution Linux, est un gaspillage d'effort, à moins que les paquets n'existent pas réellement. Les responsables de paquet passer le temps de s'assurer que le paquet fonctionne et s'installe correctement, il est inutile de dupliquer leurs efforts. Surtout ne pas installer manuellement quelque chose qui ensuite n'ont pas les avantages d'un ensemble - pas de mise à jour automatique, pas facile de suppression, etc...
Je l'ai réinstallé PIL dans Ubuntu 12.04 comme ceci:
Il ne soulève pas la
IOError: decoder zip not available
plus après la réinstallation de la PIL. Mon erreur traceback était:Essayez de réinstaller à partir de zéro:
Recherchez lib/pythonXX/site-packages/PIL. Supprimer tous ce répertoire avec le fichier PIL.la pth. Cela devrait supprimer complètement te package.
Décompresser le PIL fichiers d'installation à partir de l' *tar.gz vous avez téléchargé.
Ajouter les répertoires où votre bibliothèque jpeg est, avec add_directory(...) comme vous l'avez fait avant.
(Utiliser ldconfig -P | grep jpeg pour trouver où les bibliothèques sont).
Réessayer python setup.py construire, puis python setup.py installer. Le tester.
Mon expérience a été:
Ne pas effectuer l'étape 2 n'a pas reconstruire le paquet.
Ne pas effectuer l'étape 3 a été la cause de racine.
Ne pas effectuer l'étape 1 peut avoir joué un rôle.
Ce qui semble être un bug dans la NOTICE d'installation, pas dans Ubuntu ou n'importe quelle distribution de colis de la structure.
Et juste pour le record: il est assez fréquent d'avoir plus d'une version de Python installée sur un système, ce qui rend nécessaire d'installer les paquets manuellement. Certaines personnes ont un 2.x avec un 3.x pour expérimenter, partagé hébergements 2,5 s et les applications ont besoin d'un 2.7, juste pour ne donner que deux exemples.
Je l'ai trouvé pour être une combinaison des deux ci-dessus lors de l'installation avec requirements.txt sur Ubuntu. Je suis l'aide de Vagrant pour exécuter un chef de script, et trouvé que c'est une approche qui fonctionne le mieux pour moi:
D'abord, j'utilise un script bash pour l'installation PIL:
Prochain, lors de la requirements.txt installez-le en haut du fichier ressemble à ceci:
Bien sûr, c'est un non garantis de manière de faire, mais travaille pour dev et rapide construit. Pour la production, il est préférable de les télécharger et de vérifier tous les paquets manuellement et de les installer à partir d'un local géré référentiel.