ошибка ctypes: ошибка libdc1394: не удалось инициализировать libdc1394

Я пытаюсь скомпилировать мою программу в общую библиотеку, которую я могу использовать из кода Python, используя ctypes.

Библиотека прекрасно компилируется с помощью этой команды:

g++ -shared -Wl,-soname,mylib -O3 -o mylib.so -fPIC [files] `pkg-config --libs --cflags opencv`

Тем не менее, когда я пытаюсь импортировать его с помощью ctypes

from ctypes import *
mylib = CDLL("/path/to/mylib.so")
print mylib.test() // Expected output: Hello World

Я получаю следующую ошибку:

libdc1394 error: Failed to initialize libdc1394

Какие'происходит?

Ответы на вопрос(6)

Хорошо. Я провел целый день на этом.

По сути, связь между/dev/raw1394 а также/dev/null не является постоянным Вы можете войти в вашу виртуальную машину, позвонитьln /dev/null /dev/raw1394, но это будет продолжаться только до тех пор, пока вы не перезапустите свой контейнер.

То, что я должен был сделать, это казалось самым простым, но не идеальным подходом, - это разместить ссылки во время запуска Контейнера.

Я думал, что в Запуске это как услуга, но слишком много для простой работы.

То, как я наконец пришел на работу, (это 'не красиво, но работает), путем измененияCMD Dockerfile:

CMD sh -c 'ln -s /dev/null /dev/raw1394';

 Paglian29 июн. 2016 г., 16:33
Кроме того, вы можете добавитьRUN echo 'ln /dev/null /dev/raw1394' >> ~/.bashrc и держите свой CMD нетронутым
Решение Вопроса

Очень расстраивает, что никто не показывает конкретное решение. У меня была эта проблема после установки OpenCV. Для меня самым простым решением для удаления этого предупреждения было отключить этот драйвер:

sudo ln /dev/null /dev/raw1394
 mprat18 мая 2015 г., 04:22
Безразлично»Кажется правильным, что отключение драйвера - это способ устранить ошибку ...
 Ivan Seidel02 авг. 2015 г., 07:47
Решение не является постоянным. Вы можете избежать ошибки, используяtry..except блок, но все равно выдаст ошибку черезstderr
 Yonatan Simson30 апр. 2016 г., 19:34
Работает как шарм! Возникли проблемы с установкой caffe на AWS. Вы спасли день.
 Dmytriy Voloshyn07 февр. 2015 г., 13:24
Круто, ты спас мне день!
 dashesy20 сент. 2017 г., 00:05
выглядит как ошибка в OpenCV
 Diego Andrés Díaz Espinoza18 мая 2016 г., 02:40
Та же проблема с использованием OpenAlpr с "ALPR» командная строка. Проблема ушла с помощью этого решения; в любом случае это не ясно, в этой теме, почему это происходит
 lucaferrario05 апр. 2016 г., 19:42
Я думаю, что чтобы сделать его постоянным, достаточно добавитьln /dev/null /dev/raw1394 в/etc/rc.local (как раз передexit 0 линия)
 Fight Fire With Fire16 мар. 2015 г., 21:53
это ответ, который вы ищете - если вы используете не аппаратное обеспечение, а CV2!
 Christian17 июн. 2015 г., 08:12
Это решение неПохоже, что он постоянен в Debian. После перезагрузки ссылка пропала. Как сделать его постоянным?

У меня была похожая проблема с точной работой Ubuntu под VirtualBox. Сначала я установил OpenCV, следуя этим инструкциям:https://help.ubuntu.com/community/OpenCV Это исправило несколько проблем, которые я пробовал другими способами, но проблема с libdc1394 все еще была.

libdc1394 error: Failed to initialize libdc1394

Я наконец увиделГоран прокомментироватьпредыдущий ответ

Так что я включил контроллер USB в virtualbox .... и вуаля! все работает р, неправильно!

Спасибо, Горан!

 paisanco17 сент. 2014 г., 22:45
Это должен быть комментарий, а не дополнительный ответ.
 jeremie17 сент. 2014 г., 23:11
Я не был зарегистрирован при ответе на пост, теперь яЯ зарегистрирован, но не обладаю достаточной репутацией, чтобы переместить это сообщение в комментарии.
 kkk19 янв. 2016 г., 03:49
@jeremie Я использую Virtual Box, и на нем запущена Ubuntu 14.04, контроллер USB включен, но я получаю то же сообщение - ошибка libdc1394: Не удалось инициализировать libdc1394, я запускаю док-контейнер, в котором установлен openCV

Для тех, кто скомпилировал свой opencv и столкнулся с этой ошибкой и не нуждается в поддержке видеозахвата firewire, вы всегда можете перекомпилировать с-D WITH_1394=OFF вариант, как показано ниже:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_1394=OFF ./

Если вы отключите эту опцию, вы даже можете потерять зависимость libdc1394-22-dev (ubuntu). Хотя я'я лично не проверял это.

libdc1394 библиотека для управления оборудованием камеры Я предполагаю, что приходит opencv, на который вы ссылаетесь. Может быть, драйвер ядра не загружается? Я думаю, что есть ряд причин, по которым он может потерпеть неудачу.

Может быть, какой-нибудь эксперт OpenCV может ответить лучше. Но держу пари, что проблема в OpenCV lib.

Некоторый первоначальный поиск того же сообщения об ошибке дал результаты по той же причине [1, 2]. Так что, если вы можетет найти/dev/raw1394 в вашей файловой системе попробуйте те.

ОБНОВИТЬ:

Кажется, это всего лишь предупреждение. Модуль raw1394 устарел, и некоторые версии libdc1394 могли его искать, пока он исчезал с обновлением. Поиск его дает много результатов и отчетов об ошибках. Но похоже, что программное обеспечение должно работать нормально. Так что если вы неэто действительно нужно, вы можете просто проигнорировать это. [3, 4]

 goran10 сент. 2014 г., 20:32
Я видел эту проблему при работе под виртуальной машиной (VMWare Fusion Ubuntu 14.04 Django Stack из Bitnami), которая нене установлен USB-контроллер. После того, как я добавил USB-контроллер к виртуальной машине, эта ошибка исчезла.
 fredley02 окт. 2012 г., 13:26
Мы неНе нужно использовать аппаратное обеспечение камеры, есть ли способ компилирования без этой части OpenCV?
 kdbanman26 мая 2015 г., 23:13
Подобно @goran, я видел, что на нем запущена виртуальная машина - VirtualBox 4.3.28 под управлением CoreOS 647.0.0, в которой работает Docker 1.5.0 с образом Fedora 21. Ошибка высветилась с>>> import cv2 в образе Fedora. "
 fredley02 окт. 2012 г., 13:32
Исправление для/dev/raw1394 не похоже на работу, я получаюFATAL: Module raw1394 not found. отmodprobe
 luk3212 янв. 2017 г., 13:23
@ArthurTacca I 'отредактировал этот ответ, чтобы сделать вывод, что этобезопасно игнорировать более выдающиеся. Последнее редактирование было в 2012 году, когда это открытие было свежим и не столь определенным.
 Arthur Tacca12 янв. 2017 г., 12:49
Кажется, это всего лишь предупреждение ". Это, конечно, то, что я пропустил. Я просто предположил, что импорт неЭто сработало, но если я просто проигнорировал это и продолжил, все работало. Возможно, сделать эту часть вашего ответа жирным шрифтом?

Другой обходной путь в использовании образа докера - монтирование тома.

docker run -v /dev/null:/dev/raw1394

 Rohit Shinde30 мая 2017 г., 16:30
Как и почему это работает? Позволит ли это мне использовать веб-камеру?

Ваш ответ на вопрос