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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top