Question

Je travaille à l'intérieur d'une coquille ipython et ont souvent besoin de recharger les fichiers de script contenant mes fonctions-sous-construction.

Dans mon main.py je:

def myreload ():     execfile ( "main.py")     execfile ( "otherfile.py")

Appel myreload () fonctionne très bien si je l'ai déjà couru dans la même session ipython les commandes execfile directement.

Cependant, pour une raison quelconque, si la session est fraîche et je vient d'appeler execfile ( « main.py »), puis myreload () ne fait pas réellement les fonctions à l'intérieur otherfile.py disponibles. Il ne jette pas d'erreur si.

Toutes les idées?

Était-ce utile?

La solution

Fonctions créer un nouveau champ d'application. execfile() exécute le script dans la portée actuelle. Ce que vous faites ne fonctionnera pas.

Autres conseils

Si vous cherchez à apprendre l'utilisation correcte réelle de ipython (par exemple en mode interactif), vous devez utiliser les commandes magiques comme:

%run

et

%edit

Vérifier l'aide pour ces fonctions avec %run?. Cela donne des exemples explicites.

Voir aussi http://ipython.org/ipython-doc/stable/ interactive / tutorial.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top