2010-03-21 3 views
68

Когда я устанавливаю PIL с помощью easy_install или buildout, он устанавливается таким образом, что я должен выполнить «импорт изображения», а не «из импорта импорта PIL».Проблема с установкой PIL с использованием virtualenv или buildout

Однако, если я выполняю «apt-get install python-imaging» или использую «pip -E test_pil install PIL», все работает нормально.

Вот примеры того, как я пытаюсь установить PIL с помощью 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 

я вижу, что easy_install пакет PIL в яйцо, и PIP не делает. То же самое с buildbot, он использует яйца.

Как правильно установить PIL, используя easy_install или buildout?

ответ

95

Версия PIL, упакованная на pypi (автор), несовместима с setuptools и, следовательно, не легко устанавливается. Люди создали easy_installable версии в другом месте. В настоящее время, вы должны указать FIND-ссылку URL и использовать pip получить хороший пакет:

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

Используя pip install с --no-index вы избежите рискуете найти PyPi (нефиксированный) оригиналом PIL. Если вы должны использовать easy_install, вы должны использовать прямую ссылку на исходный архив исправленной версии; easy_install упорно до сих пор использует ссылку PyPi над FIND-ссылка URL:

easy_install http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz 

Чтобы включить PIL в билдауте, либо указать яйцо с одной и той же версией булавки или использовать раздел версии:

[buildout] 
parts = 
find-links = 
    http://dist.plone.org/thirdparty/ 
eggs = 
    PIL 
versions = versions 

[versions] 
PIL = 1.1.7 

Изменить март 2011 года. Исправления для решения проблем с упаковкой были теперь объединены в PIL's development tree, поэтому это обходное решение может скоро стать устаревшим.

Редактировать Февраль 2013: Просто используйте Pillow и сделайте с ним. :-) Явно ожидаю, что исходный пакет будет исправлен, не окупился.

+0

Об авторе об этом уведомляется, так что он также фиксируется на pypi? – blueyed

+0

Я понял, что автор не заинтересован в исправлении этого вопроса на pypi. –

+1

Я попробовал версию, показанную в вашем примере, но у меня все еще была такая же проблема. Я закончил использование установщика с веб-сайта pythonware, а затем скопировал каталог PIL и файл PIL.pth в virtualenv, и он решил проблему для меня. – tponthieux

78

Использование Pillow: the "friendly" PIL fork :-) Он предлагает:

  • совместимости Полный Setuptools
  • Faster цикл выпуска
  • Нет кода изображения изменения, которые отличаются от PIL (т.е. он стремится отслеживать все PIL изменения кода изображения, и не сделать ни одной из своих собственных изменений, не сообщая их вверх по течению.)
  • Windows, исполняемые файлы

Если PIL делает то, что делает Pillow, то вилка умрет. Пока это не произойдет, у нас есть подушка.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я автор fork, и подушка была создана в основном для облегчения моей работы (хотя здорово видеть, что другие люди тоже используют ее).

EDIT: Pillow 2.0.0 был выпущен 15 марта 2013 года. Он предлагает поддержку Python 3 и множество исправлений/улучшений ошибок.Хотя мы по-прежнему пытаемся отслеживать изменения с помощью PIL вверх (к сожалению или, к счастью, в зависимости от того, как вы на это смотрите) Подушка начала отходить от PIL.

+0

Спасибо за вашу работу! Я также попытался создать свою пирамидальную сборку, работающую с PIL, но теперь я открыл эту дискуссию, и я заменил ее подушкой, и она сработала. :-) – therealmarv

+1

Спасибо за подушку @aclark!По крайней мере, год борьбы с PIL каждый раз, когда я создаю новые машины и всегда испытываю проблемы с поддержкой JPEG и PNG на Ubuntu с помощью virtualenv, buildout и setuptools, я нашел Pillow! Теперь просто определение setuptools, и оно просто работает. Огромное спасибо! – JeromeParadis

+0

Я больше не думаю, что это необходимо, но теперь он работает с инструментами настройки прямо сейчас? – ranman

5

В Windows, я установил PIL в virtualenv следующим образом:

Установка PIL в ваших глобальных питона сайтов-пакетов, выполнив EXE-файл из: http://www.pythonware.com/products/pil/

Тогда, как «сделать это самостоятельно -er ", скопируйте файл PIL.pth и PIL в папку C: \ Python25 \ Lib \ site-packages в каталог виртуальных сайтов-сайтов. Да, питон еще «пачкать руки» окружающая среда ...

7

Для Ubuntu я обнаружил, что мне нужно, чтобы установить пакет заголовков C для моей питона версии (2,7)

sudo apt-get install python2.7-dev

После , pip install pil работал.

+0

Мне также понадобился файл Python.h при попытке установить PIL в виртуальном виртуальном компьютере Ubuntu, это исправило это! –