Установите PIL / Pillow через pip в тестировании Debian (Джесси)

19

При тестировании Debian (Jessie), когда я пытаюсь установить PIL или Pillow (библиотеки изображений Python) в virtualenvvia, pipя получаю следующую ошибку:

running egg_info
writing Pillow.egg-info/PKG-INFO
writing top-level names to Pillow.egg-info/top_level.txt
writing dependency_links to Pillow.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

reading manifest file 'Pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pillow.egg-info/SOURCES.txt'
running build_ext
building 'PIL._imaging' extension
creating build/temp.linux-x86_64-2.7/libImaging
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imaging.c -o build/temp.linux-x86_64-2.7/_imaging.o
_imaging.c:76:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Я установил все зависимости для Pillow, основываясь на моем опыте работы с Wheezy, но, похоже, что-то не так с тестированием.

Какие-либо предложения?

РЕДАКТИРОВАТЬ

На самом деле я обнаружил еще одну проблему с libc6. Версия, которую я имел, была экспериментальной. После перехода на тестовую версию я переустановил все зависимости, но теперь я получаю другую ошибку:

building 'PIL._imagingft' extension
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/freetype2 -IlibImaging -I/usr/include/tcl8.5 -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imagingft.c -o build/temp.linux-x86_64-2.7/_imagingft.o
_imagingft.c:62:31: fatal error: freetype/fterrors.h: No such file or directory
 #include <freetype/fterrors.h>
                               ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Кажется, экспериментальная версия все libc6испортила, но я не могу понять, что не так. Aptitude не показывает никаких неудовлетворенных зависимостей и aptitude install -fничего не делает.

Кроме того, если действительно заголовки linux актуальны, я установил следующие:

  • linux-headers-3.11-2-all
  • linux-headers-3.11-2-all-amd64
  • linux-headers-3.11-2-amd64
  • linux-headers-3.11-2-common
  • linux-headers-3.2.0-4-amd64
  • linux-headers-3.2.0-4-common
  • linux-headers-amd64
alxs
источник
Вы установили заголовки ядра (похоже, ошибка связана с каким-то образом).
Брайам
1
Заголовки Linux не имеют значения, отсутствуют заголовки python.
Деннис Каарсемакер

Ответы:

28

В Ubuntu 14.04 попробуйте:

sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
mrudult
источник
23

Вам нужны заголовки разработки Python и, возможно, другие пакеты разработки. Самый простой способ получить их:

sudo apt-get build-dep python-imaging
Деннис Каарсемакер
источник
Уже попробовал это. На самом деле я могу нормально установить с python-imagingсистемой aptitude, хотя я не пытался использовать его.
alxs
интересный. Каков вывод этой команды?
Деннис Каарсемакер
это сработало для меня в Ubuntu 14.04
Matt Parrilla
3

После установки разрабатываемой версии Pillow была решена и вторая проблема. Это может быть связано с этой проблемой .

Таким образом, чтобы подвести итог, решение было:

  1. Установите зависимости, как сказал Деннис, что в моем случае также включало понижение experimentalверсии libc6 с aptitude remove libc6, которая предоставила опцию до DOWNGRADEверсии репо.

  2. Установка Подушки в багажник версии с pip install git+git://github.com/python-imaging/Pillow.git

alxs
источник
3

Я использую тестирование Debian 7, и для меня это сработало:

  1. Установка зависимостей, как сказал Деннис:

    $ sudo apt-get build-dep python-imaging
  2. Создание символической ссылки в соответствии с предложением mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Установите подушку как обычно:

    $ pip install Pillow
Throoze
источник
1

На новой установке Ubuntu 14.04 на DigitalOcean я смог решить эту проблему, просто запустив

sudo apt-get install python-dev

а затем повторно запустите команду pip install внутри python venv

pip install Pillow
Danske
источник