Führen Sie den Befehlsverlauf zwischen der Python-Shell und dem Unix-Terminal zusammen

0

Eine praktische Funktion der meisten Unix-Terminals ist die Tatsache, dass Sie die Aufwärts- und Abwärtspfeiltaste drücken können, um durch den Befehlsverlauf zu scrollen und alte Befehle zu wiederholen.

Diese Funktion ist auch in der Python-Shell vorhanden, wenn sie vom Unix-Terminal ausgeführt wird.

Mein Problem ist, dass ich, wenn ich ein Python-Programm debugge, in der Regel von Unix aus beginne und tippe pythonund dann from mypython import *beginne, meine Funktionen auszuführen und zu überprüfen. Wenn irgendwann ein Fehler exit()auftritt und ich Änderungen an der Datei vornehmen muss, muss ich Python ausführen und erneut eingeben, um einen neuen Importbefehl auszugeben, der die geänderte Datei verwendet. Normalerweise habe ich mehrere lange und komplizierte Befehle eingegeben, die ich wiederholen möchte. Es wäre also großartig, wenn der Befehlsverlauf zwischen den Sitzungen beibehalten würde.

Daher möchte ich wissen, ob es eine Möglichkeit gibt, den Befehlsverlauf zwischen Unix und Python zusammenzuführen, oder alternativ eine Möglichkeit, den Befehlsverlauf zwischen Python-Sitzungen beizubehalten.

Ben Mordecai
quelle
1
Warum drückst du nicht einfach Ctrl-z, um die Python-Sitzung zu unterbrechen? Bearbeiten Sie dann Ihre Datei und geben Sie ein fg, um Ihre Python-Sitzung fortzusetzen.
Nifle
@Nifle Das Hauptproblem besteht darin, Python nicht zu beenden, um Änderungen vorzunehmen, etwa in Emacs oder so. Das Hauptproblem besteht darin, dass ich den from abc import *Import nicht freigeben und einen neuen from abc import *Befehl mit der geänderten Version ausgeben kann, da ich den Befehl bereits ausgegeben habe .
Ben Mordecai
1
Ahh, macht Sinn.
Nifle
1
Hast du es versucht reload(modulename)? Es funktioniert nicht so gut mit der from something import *Form wie mit import moduleund from dotted.name import submoduleobwohl.
Celada