Le problème avec l'installation à l'aide PIL virtualenv ou buildout
-
21-09-2019 - |
Question
Lors de l'installation à l'aide PIL easy_install ou Buildout il installe de telle sorte, que je dois faire 'Image import', pas 'de l'image d'importation PIL.
Cependant, si je fais "apt-get install python-imaging" ou utiliser "pépin -E test_pil installer PIL", tout va bien de travail.
Voici des exemples de la façon dont j'essaie d'installer PIL en utilisant virtualenv:
# virtualenv --no-site-packages test_pil
# test_pil/bin/easy_install PIL
# test_pil/bin/python
Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PIL
Je vois que easy_install paquet PIL dans l'œuf, et PIP ne fonctionne pas. Même chose avec buildbot, il utilise des œufs.
Comment pourrais-je installer PIL correctement, en utilisant easy_install ou buildout?
La solution
La version PIL emballée sur pypi (par l'auteur) est incompatible avec setuptools et donc pas easy_installable. Les gens ont créé des versions easy_installable ailleurs. À l'heure actuelle, vous devez spécifier une FIND-liens URL et utilisez pip
obtenir un bon paquet:
pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL
En utilisant pip install
avec le --no-index
vous évitez de courir le risque de trouver le PyPI (non fixe) d'origine de PIL. Si vous deviez utiliser easy_install
, vous devez utiliser un lien direct vers l'archive source d'une version corrigée; easy_install obstinément utilise encore le lien PyPI sur l'URL find-liens:
easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz
Pour inclure PIL dans un buildout, soit indiquer l'œuf avec la même broche de version ou utiliser une section versions:
[buildout]
parts =
find-links =
http://dist.plone.org/thirdparty/
eggs =
PIL
versions = versions
[versions]
PIL = 1.1.7
Modifier Mars 2011: Corrections pour résoudre les problèmes d'emballage ont été fusionnées en arbre de développement de PIL maintenant cette solution de contournement pourrait bientôt être obsolète.
Modifier Février 2013: Il suffit d'utiliser oreiller et être fait avec elle. :-) Il est clair que l'attente pour l'emballage d'origine à fixer n'a pas payé.
Autres conseils
Utilisez Pillow: le "amical" fourchette PIL :-) Il propose:
- Compatibilité setuptools complet
- cycle de sortie plus rapide
- Aucun changement de code d'image qui diffèrent de PIL (à savoir qu'elle vise à suivre tous les changements de code d'image PIL et faire aucun de ses propres changements sans les signaler en amont.)
- Les binaires Windows
Si PIL ne jamais exactement ce que fait oreiller, la fourchette va mourir. Jusqu'à ce que cela arrive, nous avons Pillow.
AVERTISSEMENT :. Je suis l'auteur de la fourche et oreiller été créé principalement pour rendre mon travail plus facile (même si il est bon de voir d'autres personnes de l'utiliser aussi)
EDIT : Pillow 2.0.0 a été libéré le 15 Mars 2013. Il offre un support Python 3 et de nombreuses corrections / améliorations de bugs. Alors que nous essayons toujours de suivre l'évolution avec PIL en amont, (malheureusement ou heureusement, selon la façon dont vous regardez) Oreiller a commencé à se éloigner de PIL.
Pour Ubuntu, je trouve que je devais installer le paquet en-têtes C pour ma version python (2.7)
sudo apt-get install python2.7-dev
Ensuite, pip install pil
a travaillé.
Sous Windows, j'ai installé PIL dans un virtualenv comme suit:
Installer PIL dans votre python mondial site-packages en exécutant le fichier .exe à partir de: http://www.pythonware.com/products/pil/
Alors, en tant que "do it yourself-er", copiez le fichier et le répertoire PIL.pth PIL dans C: \ Python25 \ Lib \ site-packages à votre virtualenv répertoire site-packages. Ouais, python est encore un environnement « se salir les mains » ...