Le programme Windows Python redémarre (péchés dans une vie différente)

J’ai un bogue Python très étrange, peut-être même un bogue dans l’interpréteur.
Mon code de reproduction minimale ressemble un peu à ce qui suit:

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() 

Je peux penser à 1e6 raisons pour lesquelles l’exécution de ce programme pourrait ne pas être aussi facile. En fait, je pourrais générer généralement autant de ce nombre! Quelques-uns sont fournis ci-dessous pour votre amusement, mais n’hésitez pas à passer à la ligne de punch:

  1. Lors de l’importation de mon module Cython personnalisé py_SaperaCamera
  2. À la suite de l’initialisation ou de la suppression de l’object qui contrôle mon appareil
  3. Segfaults, erreurs de mémoire, se faire tuer par le système d’exploitation pour être méchant
  4. La foudre, les pannes de courant, la seconde venue. Peu importe!

J’adorerais vraiment que l’exécution soit interrompue d’une manière ou d’une autre, peut-être un message d’erreur de boost :: quoi que ce soit me demandant de contacter l’équipe de support des applications, même si elle ne s’arrêtait et n’imprimait rien. Ce serait stellaire.

Non, au lieu de cela, je reçois la sortie suivante:

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

Le lecteur attentif notera que le programme semble avoir été exécuté 6 fois, une marque claire de la bête. Donc, ma question est simplement posée, qu’est-ce que j’ai fait dans ma vie précédente pour mériter cela?

Pourquoi ne pas commenter cam = py_SaperaCamera.Camera() ? Ensuite, vous saurez si c’est une instanciation de votre classe Camera qui s’améliore. Cela pourrait réduire votre domaine de recherche pour le problème.