У меня очень странная ошибка 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 причинах, по которым выполнение этой программы может идти не так гладко. На самом деле, я мог бы генерировать столько же! Некоторые из них приведены ниже для вашего развлечения, но не стесняйтесь переходить к изюминке:
Мне бы очень понравилось, если бы выполнение было каким-то образом остановлено, возможно, segfault, любящее сообщение от boost :: независимо от того, что меня просят связаться со службой поддержки приложений, черт возьми, даже если он просто остановился и ничего не печатал. Это было бы звездным.
Нет. Вместо этого я получаю следующий вывод:
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Starting
Imported
Constructed
Внимательный читатель заметит, что программа, похоже, была запущена 6 раз, явный знак зверя. Итак, мой вопрос прост: что я делал в прошлой жизни, чтобы заслужить это?
Почему бы не закомментировать cam = py_SaperaCamera.Camera()
? Тогда вы будете знать, что это что-то напрочь создает из вашего класса Camera. Это может сузить область поиска проблемы.
Других решений пока нет …