Bonjour,
Je travailles sur un deux modules distincts que j'essaye maintenant de les rejoindre. Mais je rencontre un petit problème avec execfile.
Pour information dans avant de les rejoindre j'utilisais execfile de cette manière:
execfile("monficher.py",globals(),locals())
Des variables étaient créent dans ce script et donc présente après donc globals().
Mais en mettant un execfile dans un script python dans une simple fonction def, que j’appelle depuis mon interface graphique (donc une classe). Alors là il ne trouve plus les variables créées dans le script appelé par execfile, j'ai vérifié en affichant globals et en effet je remarque leur absence.
Pour être sûr que vous comprenezpar exemple:
Test.py
script.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 import script script.fonction()
subscript.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def fonction(): execfile('subscript',globals(),locals()) print toto
et j'obtiens donc à l’exécution de fonctionClass() un ErrorName global name 'toto' is not defined.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2toto="ok"
Je pense que c'est un problème de contexte, mais je reste bloqué.
Merci d'avance de votre aide.
Partager