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?
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ę.
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.
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.
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"...
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