в Ubuntu это нормально работает, но я тестирую на Raspberry Pi 3 B, я получаю ошибку.
Я использую:
RPi 3 B
Python 3.5.3
OpenCV 4.0.1
Gtk 3.22
Я хочу создать приложение, используя python
и gtk3
.
В приложении я хочу создать графический интерфейс, также мне нужно opencv
для показа изображения, а затем нарисовать изображение с помощью обратного вызова мыши (для получения координат, поскольку я знаю, что область рисования gtk не предоставляет координаты).
Этот код для показа изображения отлично работает
импорт cv2
image = cv2.imread ("new.1.png")
cv2.imshow ("AA", изображение)
cv2.waitKey (0)
cv2.destroyAllWindows ()
Но когда я начинаю импортировать библиотеку gtk3, это код:
импорт ги
gi.require_version ('Gtk', '3.0')
из gi.repository import Gtk,
В Тонни Ид, я получаю следующую ошибку:
предупреждение libEGL: DRI2: не удалось аутентифицироваться
qt5ct: с помощью плагина qt5ct
Бэкэнд прекращен (код возврата: -11)
Фатальная ошибка Python: ошибка сегментации
Текущий поток 0x76f1f640 (сначала последний вызов):
Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 в
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1232 в _execute_prepared_user_code
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1158 в оболочке
Файл "/usr/lib/python3/dist-packages/thonny/backend.py",
строка 1171 в упаковке
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1219 в execute_source
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 853,
_execute_source
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 840,
_execute_file
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 400 в
_cmd_Run
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 217 в handle_command
Файл
"/usr/lib/python3/dist-packages/thonny/backend.py", строка 162 в
mainloop
Файл
"/usr/lib/python3/dist-packages/thonny/backend_launcher.py", строка 70
в
Используйте «Stop / Restart» для перезапуска серверной части ...
В оболочке python я не получаю сообщение об ошибке, просто:
========== RESTART: /home/pi/Downloads/TA/GUI/RPi/try.py ==========
======================= RESTART: Shell ===================== =
затем, когда я импортирую GdkPixbuf:
импорт ги
gi.require_version ('Gtk', '3.0') из gi.repository import Gtk, GdkPixbuf
В Тонне Иде я получаю следующую ошибку:
предупреждение libEGL: DRI2: не удалось аутентифицироваться
qt5ct: с помощью плагина qt5ct
Бэкэнд прекращен (код возврата: -7)
Неустранимая ошибка Python: ошибка шины
Текущий поток 0x76f1f640 (сначала последний вызов):
Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 в
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1232 в _execute_prepared_user_code
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1158 в оболочке
Файл "/usr/lib/python3/dist-packages/thonny/backend.py",
строка 1171 в упаковке
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1219 в execute_source
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 853,
_execute_source
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 840,
_execute_file
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 400 в
_cmd_Run
Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 217 в handle_command
Файл
"/usr/lib/python3/dist-packages/thonny/backend.py", строка 162 в
mainloop
Файл
"/usr/lib/python3/dist-packages/thonny/backend_launcher.py", строка 70
в
Используйте «Stop / Restart» для перезапуска серверной части ...
Другой код возврата
в оболочке python ошибка:
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: невозможно зарегистрировать существующий тип 'GtkWidget'
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: ошибка g_type_add_interface_static: утверждение 'G_TYPE_IS_INSTANTIATABLE (instance_type)'
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: невозможно зарегистрировать существующий тип 'GtkBuildable'
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: g_type_interface_add_prerequisite: утверждение 'G_TYPE_IS_INTERFACE
(interface_type) 'не удалось
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: g_once_init_leave: утверждение 'результат! = 0' не удалось
Предупреждение (из модуля предупреждений): Файл
"/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8
cv2.imshow ("AA", изображение) Предупреждение: g_type_register_static: утверждение 'parent_type> 0' не выполнено
Я не понимаю, почему в thonny ide и python shell возвращаются разные сообщения об ошибках.
Моя проблема в том, почему я могу показывать окна opencv вместе с Gtk3?
Есть ли решение?
Я пытаюсь сделать exe-файл (в Ubuntu, где код работает нормально) для запуска на RPi, но архитектура RPi - это ARM, а не X86.