2011-12-12 19 views
5

Duplicar posible:
pip install PIL -E TICKETS-1 - No JPEG/PNG supportPIL codificador JPEG no disponible

estoy trabajando en una cosecha de imagen, y estoy teniendo problemas con mi validación de formularios. La forma se valida cuando la posibilidad de subir una imagen GIF, pero cualquier otro formato que intento plantea la siguiente excepción:

Upload a valid image. The file you uploaded was either not an image or a corrupted image. 

Formulario

<form enctype="multipart/form-data" method="post" action="/pic/">{% csrf_token %} 
    {{ form.as_p }} 
    <p><input type="submit" value="View uploaded image"></p> 
    <input type="hidden" name="stage" value="crop"> 
</form> 

Ver

if request.method == 'POST': 
     form = ProfilePicForm(request.POST, request.FILES) 
     if form.is_valid(): 
      *do stuff* 
     else: 
      logger.debug('Form errors == [%s]' % form.errors) 

tengo instaló libjpeg-dev (usando apt-get) antes de instalar PIL (usando easy_install). Al principio, pensé que esto podría deberse a una instalación incorrecta de libjpeg-dev o PIL, pero ¿el problema persistiría para otros formatos como png? Este problema de hecho también ocurre para imágenes png. No estoy recibiendo un problema de decodificador jpeg, así que estoy pensando que no es eso, pero no estoy seguro. Además, estoy usando el servidor de desarrollo django.


actualización

yo decidimos probar una reinstalación del PIL. Eliminé mi carpeta de instalación PIL /usr/local/lib/python2.7/dist-packages/PIL y mi archivo PIL.pth (en la misma carpeta dist-packages). Ejecuté el script setup.py usando sudo python setup.py install. Entonces corrió el guión selftest.py, y se produce un error en la primera prueba:

-------------------------------------------------------------------- 
PIL 1.1.7 TEST SUMMARY 
-------------------------------------------------------------------- 
Python modules loaded from ./PIL 
Binary modules loaded from ./PIL 
-------------------------------------------------------------------- 
--- PIL CORE support ok 
*** TKINTER support not installed 
*** JPEG support not installed 
*** ZLIB (PNG/ZIP) support not installed 
*** FREETYPE2 support not installed 
--- LITTLECMS support ok 
-------------------------------------------------------------------- 
Running selftest: 
***************************************************************** 
Failure in example: 
try: 
_info(Image.open(os.path.join(ROOT, "Images/lena.jpg"))) 
except IOError, v: 
print v 
from line #24 of selftest.testimage 
Expected: ('JPEG', 'RGB', (128, 128)) 
Got: decoder jpeg not available 
1 items had failures: 
    1 of 57 in selftest.testimage 
***Test Failed*** 1 failures. 
*** 1 tests of 57 failed. 

No estoy seguro de cómo llegar PIL para trabajar con los módulos no soportados mencionados anteriormente. Puedo verificar que tengo zlib1g-dev, libfreetype6-dev, liblcms1-dev y libjpeg62-dev, y las bibliotecas mismas instaladas en mi sistema porque cuando intento instalarlas con apt-get, dice que ya tengo la última versión .

+0

Podría ser que no lo haga t tiene libjpeg instalado? Por lo general, PNG _ funcionará también en caso de que ese sea el problema. – c4urself

+0

Cuando ejecuto sudo apt-get install libjpeg-dev, el resultado dice que libjpeg62-dev ya es la versión más nueva. ¿Hay alguna otra manera de verificar que PIL y libjpeg-dev estén trabajando juntos correctamente? –

+0

compruebe si tiene: zlib1g-dev, libfreetype6-dev, liblcms1-dev y libjpeg62-dev, + las bibliotecas mismas. – ashwoods

Respuesta

11

Intente descargar PIL de la fuente, a continuación, editar setup.py añadir esta línea:

add_directory(library_dirs, "/usr/lib/i386-linux-gnu") 

antes de esta línea (214):

add_directory(library_dirs, "/usr/lib") 

continuación

sudo python setup.py install 

Debería trabaje ahora

+7

Modifiqué 'setup.py' de manera diferente, pero también funcionó. Cambié 'JPEG_ROOT = None' a' JPEG_ROOT = "/ usr/lib/x86_64-linux-gnu" 'y luego ejecuté' setup.py' y funcionó. –

+5

para bluehost add add_directory (library_dirs, "/ usr/lib64") – tovmeod

Cuestiones relacionadas