Je suis désolé pour la description verbale. J'ai une application wxPython dans un fichier appelé applicationwindow.py
qui réside dans un package appelé garlicsimwx
. Lorsque je lance l'application en lançant le fichier susmentionné, tout fonctionne bien. Toutefois, j'ai créé un fichier rundemo.py
dans un dossier qui contient le package garlicsimwx
, qui exécute également l'application. Lorsque j'utilise rundemo.py
, l'application se lance, cependant, lorsque le wx.Frame
principal importe un sous-package de garlicsimwx
, à savoir simulations.life
, pour une raison quelconque, une nouvelle instance de mon application est créée (c'est-à-dire qu'une nouvelle fenêtre identique apparaît.)wxPython lance mon application deux fois lors de l'importation d'un sous-paquet
J'ai essayé de parcourir les commandes une à une, et bien que le bogue se produise seulement après l'importation du sous-paquet, l'instruction import
ne le cause pas directement. Ce n'est que lorsque le contrôle revient à PyApp.MainLoop
que la deuxième fenêtre s'ouvre.
Comment l'arrêter?
Une estimation juste Frank, mais non; J'ai le bit 'if __name __ == '__ main __'', qui appelle ma fonction 'main()'. En fait, ce bug survient même si je commente ces deux lignes, et j'appelle 'main()' de 'rundemo.py'. –
@ cool-RR: Vous pouvez avoir le if __name__ == "__main__", mais vous avez aussi un appel de fonction qui se produit au moment de l'importation. Vous devez passer par votre script et assurez-vous que ce soit ENTIÈREMENT la classe et la classe et rien d'autre. –
@Frank: Je suis désolé, mais Python n'exécute-t-il pas un module seulement la première fois qu'il est importé? – Joril