installer PIL sur virtualenv avec libjpeg
-
09-10-2019 - |
Question
Actuellement, je suis dans mon installation PIL env virtuelle comme suit:
pip install -E . -r ./releases/%s/requirements.txt
où requirements.txt contient:
pil
Je peux télécharger des images PNG mais les images ne jpeg actuellement. De la lecture sur le web, il semble que je peux avoir besoin décodeur libjpeg? Est-ce que j'installe pil correctement? Quelle est la bonne façon d'installer PIL pour django dans un env virtuel avec libjpeg?
La solution
Vous devez installer les bibliothèques que les autres recommandées, mais surtout, vous devriez dire PIL où les trouver. Modifier le setup.py de sorte que
JPEG_ROOT = None
devient
JPEG_ROOT = libinclude("/usr/lib")
Je trouve que la meilleure façon était de télécharger la source avec pip mais pas installer:
pip install --no-install PIL
modifier la configuration (dans le répertoire de construction de l'environnement virtuel) et l'installation
pip install PIL
vous pouvez trouver plus d'informations dans mon un blog
Vous pouvez également essayer oreiller qui semble faire du bon travail avec peu de tracas (pip installer oreiller)
Autres conseils
Ubuntu précise, PIL ne trouve pas les fichiers de bibliothèque jpeg, même une fois qu'ils sont installés. La meilleure façon de résoudre ce problème est de faire un lien symbolique après avoir installé le package jpeg dev. Donc, il me fallait une étape supplémentaire:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL
Pour Ubuntu 11.04, ce qui a finalement fonctionné pour moi est:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
La Python Imaging Library (PIL de) semble vraiment pointilleux sur la version et l'emplacement des bibliothèques jpeg. Et parce que PIL est écrit en C et compilé, vous avez besoin des versions développement de la bibliothèque, en plus des versions d'exécution.
La situation est si mauvaise que la communauté PIL fourchue pour créer une version plus douce: oreiller: http://pypi.python.org/pypi/Pillow#why-a-fork
Sur Mac OS X, j'ai utilisé le binaire suivant pour obtenir libpng et libjpeg simultanément l'ensemble du système installé:
Parce que j'avais déjà PIL installé (via pip sur un virtualenv), je courais:
pip uninstall PIL
pip install PIL --upgrade
résolu l'erreur de decoder JPEG not available
pour moi.
Vous devez installer les bibliothèques:
sudo aptitude install libjpeg62 libjpeg62-dev zlib1g-dev
si pip soulève une erreur, essayez easy_install PIL