0
Если никаких подсистем камер не установлено, тогда Kivy падает при разборе виджета камеры examples/camera.py
демо. Вместо сбоя, есть ли вызов, чтобы узнать, будет ли найден провайдер камеры?Как определить, установлена ли камера Kivy?
Вот след:
[DEBUG ] [Camera ] Ignored <avfoundation> (import error)
[DEBUG ] [Camera ] Ignored <opencv> (import error)
[CRITICAL ] [Camera ] Unable to find any valuable Camera provider at all!
[INFO ] [Text ] Provider: pygame
Traceback (most recent call last):
File "camera.py", line 33, in <module>
CameraApp().run()
File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/app.py", line 766, in run
root = self.build()
File "camera.py", line 29, in build
return Builder.load_string(kv)
File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/lang.py", line 1522, in load_string
self._apply_rule(widget, parser.root, parser.root)
File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/lang.py", line 1704, in _apply_rule
e))
kivy.lang.BuilderException: Parser: File "<inline>", line 7:
...
5: Camera:
6: id: camera
>> 7: resolution: 399, 299
8:
9: BoxLayout:
...
TypeError: 'NoneType' object is not callable
К сожалению, это не работает. Как некоторый нечетный побочный эффект каскадных ошибок: 1) «критическая ошибка» сообщается как побочный эффект импорта kivy.uix.camera.Camera; 2) создание объекта камеры не приводит к ошибке. 3) установка разрешения на [-1, -1] не вызывает ошибки. 4) play = True или play = False не делает ошибку. Даже отображение виджета камеры не приводит к ошибке, а просто пустой экран. Ошибка при попытке установить несуществующую камеру на определенное значение. –
Похоже, я могу обмануть и посмотреть на cam._camera, чтобы увидеть, нет ли этого. –
Если вы не возражаете против того, что вы сделали работу, я добавлю это к ответу выше, чтобы сохранить его для других. –