Pitone guscio e portata execfile
Domanda
Sto lavorando da dentro un guscio ipython e spesso la necessità di ricaricare i file di script che contengono le mie funzioni-sotto-costruzione.
Dentro il mio main.py ho:
def myreload (): execfile ( "main.py") execfile ( "otherfile.py")
Calling myreload () funziona bene se ho già eseguito nella stessa sessione ipython i comandi execfile direttamente.
Tuttavia, per qualche ragione, se la sessione è fresco e ho appena chiamato execfile ( "main.py"), quindi myreload () in realtà non fare le funzioni dall'interno otherfile.py disponibili. Essa non genera alcun errore però.
Tutte le idee?
Soluzione
Funzioni di creare un nuovo ambito. execfile()
esegue lo script nell'ambito corrente. Quello che state facendo non funzionerà.
Altri suggerimenti
Se si cerca di imparare l'effettivo utilizzo corretto di ipython (cioè in modalità interattiva), quindi si dovrebbe utilizzare i comandi magici come:
%run
e
%edit
Controlla aiuto per quelle funzioni con %run?
. Questo fornisce esempi espliciti.
Vedi anche http://ipython.org/ipython-doc/stable/ interattivo / tutorial.html