thumbnail - python imaging library install
PIL-libjpeg.so.8: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio (3)
Compilado el libjpeg v8, PIL 1.1.7 e importar para _imaging funciona en el sistema Python, pero produce este error dentro del virtualenv:
libjpeg.so.8: cannot open shared object file: No such file or directory
Aquí está el error ejecutado con un intérprete python -v dentro de virtualenv
>>> import _imaging
dlopen("/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/PIL/_imaging.so", 2);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory
Y aquí están los caminos.
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg
/home/ygamretuta/dev/py/django/lib/python2.6
/home/ygamretuta/dev/py/django/lib/python2.6/plat-linux2
/home/ygamretuta/dev/py/django/lib/python2.6/lib-tk
/home/ygamretuta/dev/py/django/lib/python2.6/lib-old
/home/ygamretuta/dev/py/django/lib/python2.6/lib-dynload
/usr/lib/python2.6
/usr/lib/python2.6/plat-linux2
/usr/lib/python2.6/lib-tk
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/PIL
Estoy usando Ubuntu 10.10 y esta es la salida de uname-a:
Linux ygam-desktop 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:40:58 UTC 2011 i686 GNU/Linux
Estoy usando Python 2.6
Ya he seguido las siguientes guías:
http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
http://www.jooncode.com/2010/12/02/python-pil-jpeg-resync-restart-error-imaging-module-solve/
Además, si está haciendo instalaciones locales de Python, también puede controlar la vinculación dinámica en el nivel de sesión utilizando la variable de entorno LD_LIBRARY_PATH ::
export LD_LIBRARY_PATH=/srv/plone/python/python-2.6/lib
python
import _imaging
...
De esta manera usted no puede romper su propio sistema operativo, incluso accidentalmente. (Sucede: http://opensourcehacker.com/2011/08/31/zend-server-installation-potentially-kills-your-ssh/ )
Compilar la biblioteca desde la fuente también funciona: http://www.ijg.org/files/
Asegúrate de usar jpegsrc.v8.tar.gz si estás en un sistema similar a Unix. jpegsr8.zip parece ser la versión de MS, y lanza todos los problemas de formato estándar mientras se construye.
Vea una explicación aquí: ¿Por qué Python no puede encontrar objetos compartidos que están en directorios en sys.path?
Una solución rápida es agregar el directorio que contiene libjpeg.so.8
a su archivo /etc/ld.so.conf
, y luego ejecutar ldconfig