Как мне установить библиотеку изображений python (PIL)?

Как мне установить библиотеку изображений python (PIL) в Ubuntu?

Я пытался делать

sudo apt-get install python-imaging

но теперь, когда я запускаю python selftest.py (сценарий, который я получил откуда-то на http://pythonware.com/products/pil/ веб-сайт) Я получаю (среди других предупреждающих сообщений):

...*** JPEG support not installed*** ZLIB (PNG/ZIP) support not installed...*** 1 tests of 57 failed.

Может быть, я каким-то образом испортил PIL - как мне это исправить?

Может быть, PIL просто прекрасен, но это "selftest.py " на самом деле это не самая подходящая программа для проверки того, правильно ли установлен PIL - как еще я могу определить, правильно ли установлен PIL или нет?

(Я использую Ubuntu 12.04 LTS "Точный панголин").

(Что я в конечном счете пытаюсь сделать, так это добавить 2D-генератор штрих-кодов в некоторый код python, и все 2D-генераторы штрих-кодов, которые я смог найти, которые были написаны на python, похоже, использовали PIL).

Вышеупомянутое решение не сработало для меня в Ubuntu 12.10, поскольку libjpeg не был доступен в репозитории.

Что в конечном итоге сработало для меня, так это:

sudo apt-get build-dep python-imagingsudo apt-get install libjpeg62 libjpeg62-dev

Если вы получаете сообщение об ошибке "Вы должны поместить некоторые URI 'source' в свой sources.list", затем убедитесь, что ваш /etc/apt/sources.список содержит записи deb-src, которые соответствуют вашим записям deb.

Затем вы должны символически связать файлы с их фактическим расположением на вашем сервере в том месте, где их ожидает PIL.

32-разрядная версия

sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.sosudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.sosudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

64-разрядная версия

sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.sosudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.sosudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

Окончательно, pip install PIL

Успех!

enter image description here


Обновление Сентябрь 2014

Подушка - это более современная вилка PIL.

#jpeg supportsudo apt-get install libjpeg-dev#tiff supportsudo apt-get install libtiff-dev#freetype supportsudo apt-get install libfreetype6-dev#openjpeg200support (needed to compile from source)wget http://downloads.sourceforge.net/project/openjpeg.mirror/2.0.1/openjpeg-2.0.1.tar.gztar xzvf openjpeg-2.0.1.tar.gzcd openjpeg-2.0.1/sudo apt-get install cmakecmake .sudo make install#install pillowpip install pillow

Нечто подобное случилось и со мной, я решил это так

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

И попробуйте там установить через pip install PIL.

Подробнее о том, что pip это можно найти здесь. Короче говоря, это удобный (и становящийся стандартным) способ установки библиотек python.

если он продолжает терпеть неудачу, это может быть связано с тем, что PIL ищет эти библиотеки по другому пути.

Оказывается, что установки APT помещают библиотеки под /usr/lib/x86_64-linux-gnu и PIL будет искать их в /usr/lib/. Таким образом, вы должны создать символические ссылки, чтобы PIL мог их видеть.

Попробуйте посмотреть, существуют ли библиотеки libjpeg и libz в /usr/lib/x86_64-linux-gnu и создайте символическую ссылку таким образом

sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

Источник: http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/

Я просто хочу добавить, что pip install pil больше не работает, по крайней мере, на моей машине, вы должны сделать

pip install PIL --allow-external PIL --allow-unverified PIL

Приведенные выше ответы создают ссылки для библиотек x64 в расположениях x86. Вместо этого я бы загрузил Источник PIL затем добавьте эти строки в setup.py:

    add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")    add_directory(library_dirs, "/lib/x86_64-linux-gnu")

после этих строк (~строка 211)

    # standard locations    add_directory(library_dirs, "/usr/local/lib")    add_directory(include_dirs, "/usr/local/include")    add_directory(library_dirs, "/usr/lib")    add_directory(include_dirs, "/usr/include")

переустановите PIL. Если вы используете pip:

pip uninstall PIL

Затем из исходного каталога запустите:

python setup.py install

sudo apt-get install python-imaging сейчас устанавливает подушку, а не PIL. Что касается selftest.py, возможно, вам потребуется проверьте источник чтобы запустить его. И, конечно же, вам необходимо установить зависимости, если вы хотите, чтобы PIL поддерживал их, например

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

Для запуска версии PIL более новой, чем включена в Ubuntu::

pip install Pillow

Это решение работает для меня в Ubuntu 14.04, поскольку libjpeg не был доступен в репозитории.

Что в итоге сработало на меня

sudo apt-get build-dep python-imagingsudo apt-get install libjpeg62 libjpeg62-dev

Мне нужно было установить pip Pillow в virtualenv на 14.04 (не используя системные пакеты).

Для создания pillow из PyPI внутри virtualenv (Python 2.7):

$ sudo apt-get build-dep pillow$ virtualenv venv$ source venv/bin/activate(venv)$ pip install pillow

... затем вы можете импортировать ПИЛ.

Возможно, вы захотите попробовать использовать PIL в приложении, возможно, просто возникла проблема с selftest.py

В 18.04 это выглядит так, как будто вы просто выполняете “sudo apt-get install python-pil” или “sudo apt-get install python3-pil”.

^ Определенно, sudo apt-get install python-pil просто сработал для меня на raspbian.