Подтвердить что ты не робот

Проблема с установкой PIL с использованием virtualenv или buildout

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

Однако, если я выполняю "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 в Egg, а PIP - нет. То же самое с buildbot, он использует яйца.

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

4b9b3361

Ответ 1

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

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

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

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

[versions]
PIL = 1.1.7

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

sudo apt-get install python2.7-dev

Затем pip install pil работал.

Ответ 4

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

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

Затем, как "сделайте это самостоятельно-er", скопируйте файл PIL.pth и каталог PIL в C:\Python25\Lib\site-packages в каталог виртуальных сайтов-сайтов. Да, python по-прежнему "загрязняет ваши руки"...