Как мне установить библиотеку изображений 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).
Что-то подобное произошло со мной, я решил этот путь
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
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 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.
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
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
Подушка - более современная вилка 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
Приведенные выше ответы создают ссылки для библиотек 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
Это решение работает для меня в Ubuntu 14.04, поскольку libjpeg не был доступен в репозитории.
Что в итоге сработало для меня
sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev
Мне нужно было 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 .