Программа Windows Python перезапускается (грехи в другой жизни)

У меня очень странная ошибка Python, возможно, даже ошибка в интерпретаторе.
Мой минимально воспроизводимый код выглядит примерно так:

from sys import stdout
print "Starting"stdout.flush()

from camera import py_SaperaCamera
print "Imported"stdout.flush()

cam = py_SaperaCamera.Camera()
print "Constructed"stdout.flush()

del cam
print "Destructed"stdout.flush()

Я могу вспомнить о 1e6 причинах, по которым выполнение этой программы может идти не так гладко. На самом деле, я мог бы генерировать столько же! Некоторые из них приведены ниже для вашего развлечения, но не стесняйтесь переходить к изюминке:

  1. Во время импорта моего пользовательского модуля Cython py_SaperaCamera
  2. В результате инициализации или удаления объекта, который управляет моим устройством
  3. Segfaults, ошибки памяти, быть убитым операционной системой за шалость
  4. Молния, перебои в подаче электроэнергии, второе пришествие. Без разницы!

Мне бы очень понравилось, если бы выполнение было каким-то образом остановлено, возможно, segfault, любящее сообщение от boost :: независимо от того, что меня просят связаться со службой поддержки приложений, черт возьми, даже если он просто остановился и ничего не печатал. Это было бы звездным.

Нет. Вместо этого я получаю следующий вывод:

Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed

Внимательный читатель заметит, что программа, похоже, была запущена 6 раз, явный знак зверя. Итак, мой вопрос прост: что я делал в прошлой жизни, чтобы заслужить это?

3

Решение

Почему бы не закомментировать cam = py_SaperaCamera.Camera()? Тогда вы будете знать, что это что-то напрочь создает из вашего класса Camera. Это может сузить область поиска проблемы.

1

Другие решения

Других решений пока нет …