2016-01-27 14 views
7

Bevor ich beginne, möchte ich sagen, dass ich kein Programmierer bin; Ich bin ein Geek und ein Ingenieur. Daher liebe ich es zu programmieren und es akademisch zu benutzen. Stackoverflow hat mir mehr als 80% von dem beigebracht, was ich über Python weiß.Wie werden Module in IPython automatisch neu geladen?

Mein Problem ist, ich muss die Module in meinen Skripten manuell neuladen, indem ich importimlib zuerst in mein Terminal importiere und dann importlib.reload(*modulename*) benutze, um sie neu zu laden. Ich möchte, dass mein IPython-Terminal die Module in meinen Python-Skripten automatisch neu lädt, wenn ich sie über mein IPython-Terminal laufe. Diese Funktion wurde in der vorherigen Version mit dem magischen Befehl %autoreload bereitgestellt, der für mich nicht zu funktionieren scheint.

I @ der IPython Dokumentation ausgesehen haben (link 1), versucht, den Befehl %load_ext autoreload (link 2) und der durch %autoreload 2 Befehl (Verbindung 3), gefolgt import ipy_autoreload verwenden. Ich habe mehr als 4 andere Antworten im Stackoverflow gefunden und mir gesagt, dass ich die Dinge entweder in Link 2 oder 3 machen soll; Es hat nicht für mich funktioniert. Wenn jemand weiß, wie man Autoreloading zurückbringt, würde es meine Finger ein bisschen glücklicher machen.

Verbindung 1: https://ipython.org/ipython-doc/3/config/extensions/autoreload.html

Link 2: https://stackoverflow.com/a/18216967/5762140

Link 3: https://stackoverflow.com/a/4765191/5762140

Ich bin mit einer 64-Bit-Installation von Windows 7 habe ich IPython 4.0.1, die mit meiner Installation kam von Anaconda3 (3.18.9 64bit). Screenies über meine Fehler-Traceback vom IPython-Terminal, wenn ich versuche, %load_ext autoreload zu verwenden, kann auf Anfrage zur Verfügung gestellt werden.

Antwort

9

Alle oben genannten Links verwenden Befehle innerhalb von ipython. Sie sollten versuchen, Ihre Konfigurationsdatei zu bearbeiten. Öffnen Sie Ihr Terminal und führen Sie die folgenden Schritte aus.

Schritt 1: Stellen Sie sicher, dass Sie die neueste ipython Version

$ ipython --version 

Schritt 2 installiert haben: Finden Sie heraus, wo Ihre Konfigurationsdatei

$ ipython profile create 

Schritt 3: Öffnen Sie die Konfigurationsdatei mit einem Editor basierend auf dem Speicherort Ihrer Konfigurationsdatei. Ich benutze Atom. Zum Beispiel:

$ atom ~/.ipython/profile_default/ipython_config.py 

Schritt 4: für die folgenden Zeilen in der Konfigurationsdatei suchen:

c.InteractiveShellApp.extensions = [] 

Änderung es zu:

c.InteractiveShellApp.extensions = ['autoreload'] 

und dann uncomment diese Linie

finden:

c.InteractiveShellApp.exec_lines = [] 

Änderung es zu:

c.InteractiveShellApp.exec_lines = ['%load_ext autoreload', '%autoreload 2'] 

und dann uncomment dieser Linie

Fertig.

+0

Danke, es funktioniert gut für mich :).Weißt du, wie man das Standardstartverzeichnis für ipython einstellt? Ich habe versucht mit c.InteractiveShell.ipython_dir, aber es scheint nicht die relevante Option zu sein ... –

+0

@ A.Joly Ich würde gerne versuchen, Ihre Frage zu beantworten, aber als eine bewährte Methode für StackOverflow, wie Ihre Frage betrifft Zu einem anderen Thema suchen Sie zuerst nach einer Antwort, die Sie bereits auf Ihre Frage erhalten haben, und wenn Sie keine finden, können Sie eine neue Frage stellen. – Jomonsugi

+0

Das habe ich getan;) Ich fand die Antwort, wenn jemand interessiert ist, hier ist der Link: https://StackOverflow.com/Questions/45939209/How-to-set-default-path-automatically-in-ipython –

Verwandte Themen