Problem z instalacją PIL przy użyciu virtualenv lub buildout

Kiedy instaluję PIL używając easy_install lub buildout instaluje się w taki sposób, że muszę wykonać 'import Image', a nie'from pil import Image'.

Jeśli jednak wykonam "apt-get install python-imaging "lub użyję" PIP-e test_pil install pil", wszystko będzie działać poprawnie.

Oto przykłady jak próbuję zainstalować PIL używając 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

Widzę, że easy_install pakuje PIL do jaja, a PIP nie. To samo z buildbotem, używa jajek.

Jak mogę zainstalować PIL prawidłowo, używając easy_install lub buildout?

Author: Alexander Artemenko, 2010-03-21

4 answers

Wersja PIL spakowana na pypi (przez autora) jest niezgodna z setuptools i przez to nie jest easy_installable. Ludzie stworzyli wersje easy_installable gdzie indziej. Obecnie musisz podać adres URL find-links i użyć pip Pobierz dobry pakiet:

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

Używając pip install z --no-index unikasz ryzyka znalezienia oryginału Pil. Jeśli chcesz użyć easy_install, musisz użyć bezpośredniego linku do źródła poprawionej wersji; easy_install uparcie używa linku PyPI nad adresem URL find-links:

easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz
Egg nie jest w stanie pokonać Eggmana, ponieważ nie jest w stanie go pokonać.]}
[buildout]
parts =
find-links =
    http://dist.plone.org/thirdparty/
eggs =
    PIL
versions = versions

[versions]
PIL = 1.1.7

Edycja marzec 2011: poprawki rozwiązujące problemy z opakowaniem zostały teraz scalone w drzewo programistyczne PIL , więc to obejście może wkrótce być nieaktualne.

Edycja luty 2013: po prostu użyj poduszki i skończ z tym. :- ) Oczywiście czekam na oryginał pakiet do ustalenia nie opłacił się.

 95
Author: Martijn Pieters,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:03

Use Pillow: the "friendly" pillow fork : -) it offers:

  • Pełna kompatybilność setuptools
  • szybszy cykl uwalniania
  • Brak zmian w kodzie graficznym, które różnią się od PIL (tzn. ma na celu śledzenie wszystkich zmian w kodzie graficznym pil i nie wprowadzanie żadnych własnych zmian bez raportowania ich przed wysyłką.)
  • binaria Windows

Jeśli PIL kiedykolwiek zrobi dokładnie to, co Poduszka, wtedy widelec umrze. Do tego czasu mamy poduszkę.

DISCLAIMER : Jestem autorem widelca, a poduszka została stworzona głównie po to, aby ułatwić mi pracę(chociaż fajnie jest zobaczyć, jak inni ludzie ją używają).

EDIT : Pillow 2.0.0 został wydany 15 marca 2013 roku. Oferuje obsługę Pythona 3 i wiele poprawek/ulepszeń. Podczas gdy wciąż staramy się śledzić zmiany z pil, (niestety lub na szczęście w zależności od tego, jak na to patrzysz) Poduszka zaczęła oddalać się od PIL.

 78
Author: aclark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-06 15:15:09

Dla Ubuntu znalazłem, że muszę zainstalować pakiet nagłówków C dla mojej wersji Pythona (2.7)

sudo apt-get install python2.7-dev

Potem, pip install pil zadziałało.

 7
Author: yuvilio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-14 18:45:03

Na Windowsie zainstalowałem PIL w virtualenv w następujący sposób:

Zainstaluj PIL w globalnych pakietach Pythona, wykonując .exe z: http://www.pythonware.com/products/pil/

Następnie, jako "zrób to sam-er", skopiuj PIL.plik pth i katalog PIL w C:\Python25\Lib\site-packages do katalogu virtualenv site-packages. Tak, python to nadal środowisko "pobrudz sobie ręce"...

 5
Author: TaiwanGrapefruitTea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-30 10:03:55