Как установить библиотеку изображений 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 «Precise Pangolin»).

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

35
задан 3 August 2014 в 23:09

7 ответов

Что-то подобное произошло со мной, я решил этот путь

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/

25
ответ дан 3 August 2014 в 23:09

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

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

0
ответ дан 3 August 2014 в 23:09

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
0
ответ дан 3 August 2014 в 23:09

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

То, что в итоге сработало для меня, было:

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

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

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

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

sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo 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.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

Наконец, pip install PIL

Успех!

enter image description here


Обновление сентябрь 2014 г.

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

#jpeg support
sudo apt-get install libjpeg-dev
#tiff support
sudo apt-get install libtiff-dev
#freetype support
sudo 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.gz
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
sudo apt-get install cmake
cmake .
sudo make install
#install pillow
pip install pillow
0
ответ дан 3 August 2014 в 23:09

Приведенные выше ответы создают ссылки для библиотек 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
0
ответ дан 3 August 2014 в 23:09

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

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

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev
0
ответ дан 3 August 2014 в 23:09

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

Чтобы построить подушку из PyPI внутри virtualenv (Python 2.7):

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

... тогда вы можете импортировать PIL .

0
ответ дан 3 August 2014 в 23:09

Другие вопросы по тегам:

Похожие вопросы: