Picamera Python на Buildroot? - PullRequest
       32

Picamera Python на Buildroot?

0 голосов
/ 20 марта 2019

from picamera import PiCamera выдает следующие ошибки в python3.7 для образа linux, созданного buildroot.Ценю советы о том, как исправить.Спасибо!

/usr/bin/python3.7: symbol 'mmal_port_pool_create': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_push_front': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_destroy': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_rational_to_fixed_16_16': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_status_to_string': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_push_back': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_create': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_insert': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_rational_equal': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_list_pop_front': can't resolve symbol
/usr/bin/python3.7: symbol 'mmal_port_type_to_string': can't resolve symbol
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/site-packages/picamera/__init__.py", line 72, in <module>
    from picamera.exc import (
  File "/usr/lib/python3.7/site-packages/picamera/exc.py", line 41, in <module>
    import picamera.mmal as mmal
  File "/usr/lib/python3.7/site-packages/picamera/mmal.py", line 49, in <module>
    _lib = ct.CDLL('libmmal.so')
  File "/usr/lib/python3.7/ctypes/__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen() error

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вам необходимо выбрать пакет rpi-userland.

Я предполагаю, что вы работаете над Raspberry Pi, иначе picamera не для вас.

picamera пытается открыть общую библиотеку libmmal.so. Пакет rpi-userland Buildroot загрузит, соберет и установит эту библиотеку.

Если вы создали пакет Buildroot для python-picamera, вы должны добавить select BR2_PACKAGE_RPI_USERLAND в его файл Config.in, а также скопировать зависимости пакета rpi-userland. В файле python-picamera.mk вы должны добавить PYTHON_PICAMERA_DEPENDENCIES += rpi-userland. Это гарантирует, что пакет всегда будет выбран и собран при включении picamera.

Кроме того, если у вас есть рабочий пакет python-picamera, рассмотрите возможность отправки его в апстрим, следуя рекомендациям по вкладам .

Если вы не создали пакет Buildroot для python-picamera, это может быть источником проблемы. Пакет picamera из PyPI связан с определенной версией libmmal, которая может отличаться от версии в Buildroot. Это может привести к ошибкам, которые вы видите при импорте модуля.

0 голосов
/ 20 марта 2019
sudo apt-get update
sudo apt-get upgrade

sudo raspi-config

Включение камеры и перезагрузка

...