Fehler bei der Nikola-Installation

2012-06-20 21:55

Heute habe ich das Blog-System Nikola testen wollen und stieß beim Installieren der Sourcen auf folgenden Fehler:

 Running setup.py install for pillow
 building '_imaging' extension
 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/home/niko/nikola_test/include -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/i386-linux-gnu -c _imaging.c -o build/temp.linux-i686-2.7/_imaging.o
 _imaging.c:75:20: fatal error: Python.h: No such file or directory
 compilation terminated.
 error: command 'gcc' failed with exit status 1
 Complete output from command /home/niko/nikola_test/bin/python -c "import setuptools;file='/home/niko/nikola_test/build/pillow/setup.py';exec(compile(open(file).read().replace('rn', 'n'), file, 'exec'))" install --single-version-externally-managed --record /tmp/pip-uxNU0B-record/install-record.txt --install-headers /home/niko/nikola_test/include/site/python2.7:
running install

running build

[ ... snip ... ]

copying PIL/ImageMode.py -> build/lib.linux-i686-2.7/PIL

running build_ext

building '_imaging' extension

creating build/temp.linux-i686-2.7/libImaging

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/home/niko/nikola_test/include -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/i386-linux-gnu -c _imaging.c -o build/temp.linux-i686-2.7/_imaging.o

_imaging.c:75:20: fatal error: Python.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1


Command /home/niko/nikola_test/bin/python -c "import setuptools;file='/home/niko/nikola_test/build/pillow/setup.py';exec(compile(open(file).read().replace('rn', 'n'), file, 'exec'))" install --single-version-externally-managed --record /tmp/pip-uxNU0B-record/install-record.txt --install-headers /home/niko/nikola_test/include/site/python2.7 failed with error code 1 in /home/niko/nikola_test/build/pillow

Storing complete log in /home/niko/.pip/pip.log

Hier war nicht Nikola das Problem, sondern Pillow. Da hier C-Extensions kompiliert werden, benötigt man neben gcc auch die entsprechenden Header-Files.

Die kann man mittels folgendem Befehle nachinstallieren: sudo apt-get install python2.7-dev

Falls gcc noch fehlt, kann man sich das Paket build-essential installieren.

Update:

Das nächste Problem folgt auf dem Fuße. Die Pillow-Installation hat keinen JPEG-Support. Äußert sich durch einen Fehler wie den folgenden:

TaskError - taskid:render_galleries:output/galleries/demo/tesla2_lg.thumbnail.jpg

PythonAction Error

Traceback (most recent call last):
 File "/home/niko/nikola_error/local/lib/python2.7/site-packages/doit/action.py", line 291, in execute
  returned_value = self.py_callable(*self.args, **kwargs)
 File "/home/niko/nikola_error/local/lib/python2.7/site-packages/nikola/nikola.py", line 818, in create_thumb
  im.thumbnail(size, Image.ANTIALIAS)
 File "/home/niko/nikola_error/local/lib/python2.7/site-packages/PIL/Image.py", line 1559, in thumbnail
  self.load()
 File "/home/niko/nikola_error/local/lib/python2.7/site-packages/PIL/ImageFile.py", line 189, in load
  d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
 File "/home/niko/nikola_error/local/lib/python2.7/site-packages/PIL/Image.py", line 385, in _getdecoder
  raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

Hier muss das Paket libjpeg8-dev installiert und anschließend Pillow neu installiert werden (bedeutet in der Praxis es mittels pip entfernen und anschließend neu installieren) . Der Installationsbericht von Pillow zeigt dann eine Meldung, das JPEG-Support vorhanden ist.