Frage

Ich bin aus dem Inneren eines ipython Shell arbeiten und oft müssen die Skriptdateien neu zu laden, die meine Funktionen-under-Konstruktion enthalten.

In meinem main.py ich habe:

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

Der Aufruf myreload () funktioniert gut, wenn ich schon in der gleichen ipython Sitzung Befehle die execfile direkt ran.

Doch aus irgendeinem Grund, wenn die Sitzung frisch ist und ich rief nur execfile ( „main.py“), dann myreload () nicht wirklich die Funktionen machen von innen otherfile.py zur Verfügung. Es macht keinen Fehler aus, though.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Funktionen erstellen Sie einen neuen Rahmen. execfile() führt das Skript im aktuellen Bereich. Was Sie tun, wird nicht funktionieren.

Andere Tipps

Wenn Sie versuchen, die tatsächliche korrekte Verwendung von ipython (das heißt im interaktiven Modus) zu lernen, dann sollten Sie magische Befehle wie verwenden:

%run

und

%edit

Überprüfen Sie Hilfe für diese Funktionen mit %run?. Dies bietet explizite Beispiele.

Siehe auch http://ipython.org/ipython-doc/stable/ interactive / tutorial.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top