запуск нескольких экземпляров pyglet с многопроцессорной библиотекой в ​​python

У меня есть код Python, который визуализирует сценарий вождения в Python. В коде используется пиглет. Допустим, код

vis_traj(input_A)

Мне нужно визуализировать два сценария одновременно. И я пытаюсь запустить их на отдельном процессоре, используя многопроцессорную библиотеку.

p1 = Process(target = vis_traj, args=(input_A)) p2 = Process(target = vis_traj, args=(input_B)) p1.start() p2.start()

Но я получаю сообщение об ошибке, и кажется, что они не могут одновременно использовать X-сервер:

XIO: фатальная ошибка ввода-вывода 25 (неподходящий ioctl для устройства) на X-сервере «: 1» после 228 запросов (228 известных обработанных) с 0 оставшимися событиями.

XIO: фатальная ошибка ввода-вывода 11 (ресурс временно недоступен) на X-сервере «: 1» после 230 запросов (230 известных обработанных) с оставшимися 18 событиями.

XIO: фатальная ошибка ввода-вывода 11 (ресурс временно недоступен) на X-сервере «: 1» после 228 запросов (228 известных обработанных) с 0 оставшимися событиями.

Можно ли как-то обойти эту ошибку?


person Amir    schedule 30.01.2020    source источник


Ответы (1)


Я наткнулся на этот вопрос, пытаясь найти ответ. Я смог заставить свой код работать, переместив все связанные с pyglet классы и импорт в функцию, которую я запускаю в Process(). Я подозреваю, что библиотека pyglet имеет глобальное состояние, которое должно быть уникальным для каждого процесса.

На это мне намекнул другой ответ, который я сейчас не могу найти, который указал мне правильное направление.

person ckemere    schedule 04.07.2020