2014-06-06 20 views
6

Prima che qualcuno dica "sudo apt-get install libjpeg-dev" o qualcosa del genere, non ho accesso sudo. Sono su una fetta di un server che NON mi permette di avere accesso sudo. Quindi devo fare tutta questa cosa nella mia directory locale. Questo è l'unico modo in cui posso farlo.IOError: decoder jpeg non disponibile quando si utilizza il cuscino

Ho bisogno di uno script python per ridimensionare un'immagine. Funziona perfettamente bene per i file PNG, ma cade a pezzi sui file jpeg con l'errore elencato nel titolo.

qui sono i passi che ho preso finora:

  1. scaricato libjpeg-dev e installato a $HOME/jpegtest, quindi all'interno della jpegtest/cartella è lib /, include/e così via
  2. Ho scaricato Pillow manualmente ed estratto fuori per $HOME/Pillow
  3. ho modificato il setup.py fild così la JPEG_ROOT ad un libinclude(<absolute path to jpegtest>)
  4. ho costruito e compi condotto Pillow, dove è installato per $HOME//.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/Pillow-2.4.0-py2.7-linux-x86_64.egg La parte importante della produzione è la seguente:

    *** 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 
    

Così potrebbe supporre che questo significa supporto JPEG funzionerà, ma quando eseguo il mio programma si dice:

IOError: decoder jpeg not available

Durante la digitazione questo ho anche notato la questione in Pillow recognizes JPEG encoder on install, but not use, che sembrava molto vicino al mio, così ho provato la soluzione c'è:

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

Ma ho ancora lo stesso errore.

Ho lavorato a questo problema per circa due giorni, e non sono del tutto sicuro di cosa fare. Se qualcuno potesse offrire assistenza, sarebbe molto utile.

+0

Forse prova 'ldd' come in questa risposta http://stackoverflow.com/a/24397115/162768 e scopri quale percorso sta cercando. –

+0

Sembra che dovresti chiedere a sysadmin di installare le librerie necessarie sulla root del server. – sundance

+0

Sei sicuro che l'interprete Python che stai usando provenga dal tuo setup Pythonbrew e non dal SO di base incluso (che potrebbe avere il Pillow compilato senza supporto JPEG)? – Timusan

risposta

1

Invece di limitarsi a scaricare le librerie di cui hai bisogno, prova a creare un intero ambiente Python in localmente nella vostra cartella home:

$ 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=~ 

aggiornare la variabile PATH in modo che il Python locale viene eseguito per primo:

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

Ottenere pip, da cui è possibile installare altri pacchetti:

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

Gli URL possono variare. Potresti ancora dover modificare setup.py - Non ho usato questa tecnica con le librerie di tipo C quindi non ne sono sicuro.

Problemi correlati