Ich versuche, einen Ipython-Interpreter remote auszuführen (mit Emacs 24.5 und native python.el
), bin mir aber nicht sicher, ob ich den richtigen Ansatz habe: Wann immer ich zum Beispiel versuche, einen solchen Befehl auszuführen (der ausgelöst wird mit C-c C-c
):
Run Python: /ssh:<server_name>:/usr/local/bin/ipython -i
(mit <server_name>
einem gültigen Eintrag in meinem ~/.ssh/config
und ipython
an diesem entfernten Ort verfügbar), erhalte ich eine Fehlermeldung wie:
Warning (emacs): Python shell prompts cannot be detected.
If your emacs session hangs when starting python shells
recover with `keyboard-quit' and then try fixing the
interactive flag for your interpreter by adjusting the
`python-shell-interpreter-interactive-arg' or add regexps
matching shell prompts in the directory-local friendly vars:
+ `python-shell-prompt-regexp'
+ `python-shell-prompt-block-regexp'
+ `python-shell-prompt-output-regexp'
Or alternatively in:
+ `python-shell-prompt-input-regexps'
+ `python-shell-prompt-output-regexps'
ebenso gut wie:
env: /ssh:<server_name>:/usr/local/bin/ipython: No such file or directory
in einem *Python*
Puffer .. Nutzt dies Remote-Interpreter tramp
und python.el
kann es so ausführen?
@ serv-inc answear ist hier der beste Ansatz:
aber es wird immer noch mit dem Fehler fehlschlagen:
Sie müssen auf eine ausführbare Datei in Ihrem Pfad verweisen, damit direkte Shell-Befehle nicht abgespielt werden. Wenn Sie jedoch ein Wrapper-Skript schreiben, wird dies behoben. Nennen wir es
remote-python
:-t
erzwingt die Zuweisung von Pseudo-Terminals.$@
delegiert alle empfangenen Argumente an das Remote-Ipython.Dieses Skript muss sich in einem Verzeichnis befinden, das in Ihrer
PATH
Variablen definiert ist. Sie können dies in Emacs überprüfen mit:dann können Sie
remot-python
als Ihren Dolmetscher festlegen :Wenn Sie eine Warnung zur Redline-Unterstützung erhalten:
Hinweis:
Das Schöne an dieser Methode ist, dass sie mit fast jedem Dolmetscher funktionieren sollte. Ich habe es auch mit REPL von julia-mode getestet und Sie können eine interaktive Funktion schreiben, um Ihre Remote- / lokalen Interpreter zu wechseln.
quelle
Versuchen Sie zu bewerten (oder sogar in
.emacs
)und verwenden Sie wie Ihre lokale Bewertung für jede Python-Datei.
In der ersten Zeile wird die Fernbedienung
ipython
als Standardinterpreter festgelegt. Die zweite Zeile behebt ein Ipython-Problem.quelle