Проблема с установкой PIL с помощью virtualenv или buildout - PullRequest
70 голосов
/ 21 марта 2010

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

Однако, если я делаю «apt-get install»python-imaging "or use" 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 в Egg, а PIP - нет.То же самое с buildbot, он использует яйца.

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

Ответы [ 4 ]

96 голосов
/ 21 марта 2010

Версия PIL, упакованная на pypi (автором), несовместима с setuptools и поэтому не может быть легко установлена. Люди создали easy_installable версии в другом месте. В настоящее время вам нужно указать URL-адрес find-links и использовать 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 , поэтому этот обходной путь может скоро устареть.

Редактировать февраль 2013: просто используйте Подушка и покончите с этим. :-) Очевидно, ожидание исправления оригинальной упаковки не окупилось.

79 голосов
/ 14 октября 2011

Использование Подушка: "дружелюбная" вилка PIL :-) Она предлагает:

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

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

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

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

8 голосов
/ 14 февраля 2013

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

sudo apt-get install python2.7-dev

Впоследствии pip install pil сработало.

6 голосов
/ 30 ноября 2012

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

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

Затем, как«Сделай сам», скопируйте файл PIL.pth и каталог PIL в C: \ Python25 \ Lib \ site-packages в каталог virt -alenv site-packages.Да, python по-прежнему остается "грязной" средой ...

...