Instal PIL / Bantal melalui pip dalam pengujian Debian (Jessie)

19

Pada pengujian Debian (Jessie), ketika saya mencoba menginstal PIL atau Pillow (python imaging libs) virtualenvmelalui pipsaya mendapatkan kesalahan berikut:

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

Saya telah menginstal semua dependensi untuk Pillow, berdasarkan pengalaman saya dengan Wheezy, tetapi sepertinya ada sesuatu yang berbeda dengan pengujian.

Ada saran?

EDIT

Sebenarnya saya menemukan masalah lain dengan libc6. Versi yang saya miliki adalah dari eksperimental. Setelah menurunkannya ke versi pengujian, saya menginstal ulang semua dependensi tetapi sekarang saya mendapatkan kesalahan yang berbeda:

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

Tampaknya versi eksperimental dari libc6hal-hal yang kacau, tetapi saya tidak tahu apa yang salah. Aptitude tidak menunjukkan dependensi yang aptitude install -ftidak terpenuhi dan tidak melakukan apa pun.

Juga, jika memang linux-header relevan, yang saya instal adalah:

  • 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
sumber
Apakah Anda menginstal header kernel (kesalahan tampaknya terkait, entah bagaimana).
Braiam
1
Header Linux tidak relevan, itu header python yang hilang.
Dennis Kaarsemaker

Jawaban:

28

Di Ubuntu 14.04 coba:

sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
mrudult
sumber
23

Anda memerlukan header pengembangan python, dan mungkin paket pengembangan lainnya. Cara termudah untuk mendapatkannya adalah:

sudo apt-get build-dep python-imaging
Dennis Kaarsemaker
sumber
Sudah mencobanya. Sebenarnya saya biasanya dapat menginstal seluruh python-imagingsistem dengan aptitude, meskipun saya tidak mencoba untuk benar-benar menggunakannya.
alxs
menarik. Apa output dari perintah itu?
Dennis Kaarsemaker
ini bekerja untuk saya di Ubuntu 14.04
Matt Parrilla
3

Setelah menginstal versi pengembangan Bantal, masalah kedua juga terpecahkan. Mungkin terkait dengan masalah ini .

Singkatnya, solusinya adalah:

  1. Instal dependensi seperti yang dikatakan Dennis, yang dalam kasus saya juga termasuk menurunkan experimentalversi libc6 aptitude remove libc6, yang memberikan opsi untuk DOWNGRADEitu ke versi repo.

  2. Menginstal versi bagasi Bantal dengan pip install git+git://github.com/python-imaging/Pillow.git

alxs
sumber
3

Saya menggunakan pengujian Debian 7, dan bagi saya itu berhasil melakukan ini:

  1. Menginstal dependensi seperti yang dikatakan oleh Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Membuat tautan simbolis seperti yang disarankan oleh mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Pasang Bantal seperti biasa:

    $ pip install Pillow
Throoze
sumber
1

Pada instalasi Ubuntu 14.04 baru di DigitalOcean, saya bisa menyelesaikan masalah ini dengan hanya menjalankan

sudo apt-get install python-dev

dan kemudian menjalankan kembali perintah instal pip di dalam python venv

pip install Pillow
danske
sumber