Встановіть PIL / Подушку через pip в тестуванні Debian (Jessie)


19

Під час тестування Debian (Jessie), коли я намагаюся встановити PIL або Pillow (python imaging libs) в 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

Я встановив усі залежності для Подушки, грунтуючись на моєму досвіді роботи з Wheezy, але здається, що з тестуванням щось інакше.

Будь-які пропозиції?

EDIT

Насправді я виявив ще одну проблему з 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

Ви встановили заголовки ядра (помилка, здається, якось пов'язана).
Брайам

1
Linux заголовки не мають значення, відсутні заголовки python.
Денніс Каарсемейкер

Відповіді:



23

Вам потрібні заголовки розробки python та, можливо, інші пакети розробки. Найпростіший спосіб отримати їх:

sudo apt-get build-dep python-imaging

Вже спробував це. Насправді я можу нормально встановлювати python-imagingсистему за допомогою системи aptitude, хоча я не намагався її фактично використовувати.
alxs

цікаво. Який результат цієї команди?
Денніс Каарсемейкер

це працювало для мене в Ubuntu 14.04
Метт Паррілья

3

Після встановлення версії розробки Pillow також була вирішена друга проблема. Це може бути пов'язано з цим питанням .

Отже, підсумовуючи, рішення було:

  1. Встановіть залежності, як сказав Денніс, що в моєму випадку також включало пониження experimentalверсії libc6 з aptitude remove libc6, що надало можливість для DOWNGRADEнеї до версії repo.

  2. Встановлення версії магістралі Подушки с pip install git+git://github.com/python-imaging/Pillow.git


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

1

На свіжій установці Ubuntu 14.04 на DigitalOcean я зміг вирішити цю проблему просто запустившись

sudo apt-get install python-dev

а потім повторно запустіть команду встановлення pip всередині python venv

pip install Pillow
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.