ติดตั้ง PIL / หมอนผ่าน pip ในการทดสอบ Debian (Jessie)


19

ในการทดสอบ Debian (เจสซี) เมื่อฉันพยายามติดตั้ง PIL หรือ Pillow (python imaging libs) virtualenvผ่านทาง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 แต่ดูเหมือนว่ามีบางอย่างที่แตกต่างจากการทดสอบ

ข้อเสนอแนะใด ๆ

แก้ไข

ที่จริงแล้วฉันค้นพบปัญหาอื่นด้วย 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 install -fไม่ได้ทำอะไรเลย

นอกจากนี้หากส่วนหัวของลินุกซ์นั้นเกี่ยวข้องกับสิ่งที่ฉันติดตั้งไว้:

  • 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

คุณได้ติดตั้งส่วนหัวเคอร์เนล (ข้อผิดพลาดดูเหมือนว่ามันเกี่ยวข้องอย่างใด)
Braiam

1
ส่วนหัวของลินุกซ์นั้นไม่เกี่ยวข้องมันเป็นส่วนหัวของหลามที่ขาดหายไป
Dennis Kaarsemaker

คำตอบ:



23

คุณต้องการส่วนหัวของการพัฒนาหลามและแพ็คเกจการพัฒนาอื่น ๆ วิธีที่ง่ายที่สุดในการรับคือ:

sudo apt-get build-dep python-imaging

ลองมาแล้ว ในความเป็นจริงฉันสามารถติดตั้งได้python-imagingทั่วทั้งระบบด้วยaptitudeแม้ว่าฉันจะไม่ได้ลองใช้งานจริง
alxs

น่าสนใจ เอาต์พุตของคำสั่งนั้นคืออะไร
Dennis Kaarsemaker

สิ่งนี้ใช้ได้กับฉันใน Ubuntu 14.04
Matt Parrilla

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. การติดตั้งการพึ่งพาดังกล่าวโดย Dennis:

    $ 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 install อีกครั้งภายใน python venv

pip install Pillow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.