webentwicklung-frage-antwort-db.com.de

Was bedeutet In [*] in IPython Notebook und wie kann es deaktiviert werden?

Ich verwende Windows 7, Python 2.7.9 sowie die neueste Version von IPython 3.1.

Ich lief %python in ein IPython Notebook und ließ die Zelle laufen. Statt die Python-Version zurückzugeben, lief sie nicht und sprang in eine neue Zeile und druckte statt einer Zeilennummer einen In [*]. In ipython läuft jetzt keine Zeile. Alles, wenn ich versuche, einen Zellenwert auszuführen, wird ignoriert.

Weiß jemand was passiert ist?

31
Isak La Fleur

Der Kernel ist beschäftigt. Gehen Sie in das Menü Kernel und klicken Sie auf Interrupt. Wenn dies nicht funktioniert, klicken Sie auf Restart. Sie müssen in eine neue Zelle gehen und Shift + Enter drücken, um zu sehen, ob es funktioniert.

37
Mike Müller

Das Problem, dass Ihr Kernel ausgelastet ist, kann eine bestimmte Codezeile sein. In diesem Fall benötigt Ihr Computer möglicherweise nur Zeit, um durch diese Zeile zu arbeiten. 

Um herauszufinden, welche Zeile oder Zeilen so lange dauert, müssen Sie, wie von Mike Muller erwähnt, das Programm neu starten oder den Kernel unterbrechen. Gehen Sie dann sorgfältig eine Zeile nacheinander durch, bis Sie die erste Zeile mit dem Sternchen erreichen. 

Wenn Sie Ihr ausgelastetes Programm nicht neu starten oder unterbrechen, können Sie nicht feststellen, welche Leitung die Problemleitung ist und welche Leitung nicht, da sie nur beschäftigt ist, während sie an dieser Problemleitung arbeitet. Es wird weiterhin das Sternchen in jeder Zeile angezeigt, bis die Ausführung dieser einen Zeile abgeschlossen ist, auch wenn Sie am Anfang beginnen. Dies ist äußerst verwirrend, da Zeilen, die ausgeführt wurden und ausgegeben wurden, plötzlich ihre Ausgabe verlieren, wenn Sie sie im zweiten Durchlauf ausführen. Verwirrend ist auch die Tatsache, dass Sie Änderungen an Ihrem Code vornehmen können, während der Kernel ausgelastet ist. Sie können jedoch keine neuen Ausgaben erhalten, bis sie wieder frei sind.

Ihr Code muss nicht falsch sein, um dies zu verursachen. Möglicherweise haben Sie nur einen zeitaufwändigen Befehl eingefügt. Bootstrapping hat das für mich verursacht. 

Wenn Ihr Code das ist, was er sein muss, spielt es keine Rolle, welche Zeile die Problemzeile ist, und Sie müssen lediglich den gesamten Code zum Ausführen geben. Die Hauptgründe, um herauszufinden, welche die Problemlinie ist, wären, wenn einige Zeilen entbehrlich wären oder falls Sie den Stern aus einem anderen Grund erhalten würden und dies ausschließen müssten.

Wenn Sie Code für einen Internetdienst schreiben, der nach einer Zeitüberschreitung abläuft, wenn Sie ihn nicht eingeben, hat der Code möglicherweise nicht genügend Zeit, um die Ausführung abzuschließen, wenn Sie nur darauf warten. Das Scrollen alle paar Minuten reicht in der Regel aus, um das Zeitüberschreiten dieser Seiten zu verhindern.

1
Elle

Um dieses Problem zu beheben, musste ich mein Antivirenprogramm beenden.

1
Chirag