Проблема с установкой 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?
Ответы
Ответ 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 по-прежнему "загрязняет ваши руки"...