2014-06-06 11 views
6

Bevor jemand sagt "sudo apt-get install libjpeg-dev" oder etwas in diese Richtung, habe ich nicht sudo Zugriff. Ich bin auf einer Scheibe eines Servers, der mir nicht erlaubt, sudo Zugang zu haben. Also muss ich das Ganze in meinem lokalen Verzeichnis machen. Nur so kann ich es machen.IOError: Decoder JPEG nicht verfügbar, wenn Kissen

Ich brauche ein Python-Skript, um die Größe eines Bildes zu ändern. Es funktioniert perfekt für Png-Dateien, aber es fällt auf JPEG-Dateien mit dem Fehler im Titel aufgeführt.

Hier sind die Schritte, die ich bisher gemacht habe:

  1. libjpeg-dev heruntergeladen und installiert es auf $HOME/jpegtest, so innerhalb der jpegtest/Ordner lib/ist, sind/und so weiter
  2. ich heruntergeladen Pillow manuell und extrahiert es aus zu $HOME/Pillow
  3. ich die setup.py fild bearbeitet, so dass die JPEG_ROOT zu einem libinclude(<absolute path to jpegtest>)
  4. I gebaut und compi führte Pillow, wo es zu $HOME//.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/Pillow-2.4.0-py2.7-linux-x86_64.egg Der wichtige Teil der Ausgabe wird wie folgt installiert:

    *** TKINTER support not available 
    --- JPEG support available 
    *** OPENJPEG (JPEG2000) support not available 
    --- ZLIB (PNG/ZIP) support available 
    *** LIBTIFF support not available 
    *** FREETYPE2 support not available 
    *** LITTLECMS2 support not available 
    *** WEBP support not available 
    *** WEBPMUX support not available 
    

So würde ich davon ausgehen, dass dies bedeutet, funktioniert JPEG-Unterstützung, aber wenn ich mein Programm laufen, sagt es:

IOError: decoder jpeg not available

Während diese Eingabe ich habe auch bemerkt, die Frage bei Pillow recognizes JPEG encoder on install, but not use, die Mine sehr nahe klang, so habe ich versucht, die Lösung gibt:

ln -s /media/sdl1/home/midnight/jpegtest/lib/libjpeg.so /media/sdl1/home/midnight/.pythonbrew/pythons/Python-2.7.5/lib 

Aber ich habe immer noch den gleichen Fehler.

Ich habe an diesem Problem seit etwa zwei Tagen gearbeitet, und ich bin mir nicht ganz sicher, was zu tun ist. Wenn jemand Hilfe anbieten könnte, wäre das sehr hilfreich.

+0

Vielleicht versuchen Sie 'LDD' wie in dieser Antwort http://StackOverflow.com/A/24397115/162768 und sehen, welchen Weg es sucht. –

+0

Klingt so, als sollten Sie den Sysadmin bitten, die benötigten Bibliotheken auf dem Server root zu installieren. – sundance

+0

Sind Sie sicher, dass der Python-Interpreter, den Sie verwenden, aus Ihrem Pythonbrew-Setup stammt und nicht das grundlegende Betriebssystem, das enthalten ist (welches Pillow möglicherweise ohne JPEG-Unterstützung kompiliert wurde)? – Timusan

Antwort

1

Anstatt nur die Bibliotheken herunterzuladen Sie benötigen, versuchen in lokalen Ordner in Ihrem Hause eine ganze Python-Umgebung zu schaffen:

$ wget http://www.python.org/ftp/python/[desired version of Python].tgz 
$ tar xzf Python[version].tgz 
$ cd python-[version] 
$ ./configure 
$ make altinstall prefix=~ exec-prefix=~ 

Aktualisieren Sie Ihre PATH-Variable, so dass Ihre lokalen Python zuerst ausgeführt wird:

$ PATH = /home/user/[pathtopython]:$PATH 

pip erhalten, von dem andere Pakete installiert werden können:

$ curl https://bootstrap.pypa.io/get-pip.py > get-pip.py 
$ ./get-pip.py 
$ pip install pillow 

URLs können variieren. Sie müssen möglicherweise noch setup.py ändern - ich habe diese Technik nicht mit C-ähnlichen Bibliotheken verwendet, daher bin ich mir nicht sicher.