Hola de nuevo, hace poco me hice con una Raspberry Pi a la cual he llamado PIerina (suelo poner nombre a todos mis dispositivos), también compré el modulo de cámara para PIerina, la mayoría de cosas funcionan bien con distros como Raspbian, pero como yo elegí la pastilla azul (Fedora), eso no es tan cómodo pues no todo funciona correctamente, una de estas cosas es la librería picamera de Python, esta me lanzaba el siguiente error:

Traceback (most recent call last):
File “./take_photo.py”, line 4, in <module>
import picamera
File “/usr/lib/python2.7/site-packages/picamera/__init__.py”, line 72, in <module>
from picamera.exc import (
File “/usr/lib/python2.7/site-packages/picamera/exc.py”, line 41, in <module>
import picamera.mmal as mmal
File “/usr/lib/python2.7/site-packages/picamera/mmal.py”, line 47, in <module>
_lib = ct.CDLL(‘libmmal.so’)
File “/usr/lib/python2.7/ctypes/__init__.py”, line 357, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libmmal.so: cannot open shared object file: No such file or directory

La mayor parte de este mensaje no nos interesa, solo la ultima linea:

OSError: libmmal.so: cannot open shared object file: No such file or directory

Este error ocurre por que las Raspberry Pi usan un kernel propio, con librerías propias (para sus módulos), y binarios propios, una de esas librerías es libmmal.so, esta se puede encontrar en /opt/vc/lib/, PERO, el sistema no reconoce por defecto estas librerías (ya que no es la única),

Para que este error sea corregido tenemos que añadir ese directorio al grupo de librerías que el sistema reconoce (o también llamado “añadir variables de entorno”), y eso se hace de la siguiente forma:

# echo “/opt/vc/lib/”>/etc/ld.so.conf.d/rpi.conf

# ldconfig

El primer comando crea un nuevo archivo conteniendo la ruta de una nueva carpeta conteniendo librerías, y el segundo comando hace conocer al sistema que fue registrada una nueva carpeta de librerías.

Hecho esto, se puede usar la librería picamera sin ningún problema.

Espero les sirva y…

Happy hacking…

 

Anuncios