İpython'u uzaktan çalıştırma


9

Uzaktan (bir Emacs 24.5 ve yerli ile python.el) bir ipython yorumlayıcı çalıştırmaya çalışıyorum , ama doğru bir yaklaşım var emin değilim: ne zaman (örneğin tetiklenir C-c C-c) örneğin böyle bir komutu çalıştırmak için :

Run Python: /ssh:<server_name>:/usr/local/bin/ipython -i

(ile <server_name>geçerli skinTenimde girişi ~/.ssh/configve ipythono uzakta bir yerde mevcut), bir hata gibi olsun:

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'

Hem de:

env: /ssh:<server_name>:/usr/local/bin/ipython: No such file or directory

Bir de *Python*tampon .. bu yapım kullanımı mı tramp, ve bir python.elşekilde uzak tercüman çalıştırmak mümkün?

Yanıtlar:


5

Bunun bir yolu kullanmaktır *eshell*.

  • M-x eshell
  • cd /ssh:<server_name>:~
  • run-python /usr/bin/ipython
  • Geçiş *Python*tampon.

3
Bu güzel, ancak bu Python arabelleğine kod göndermeyi mümkün kılmaz . Bu doğru mu?
BakaKuna

@BakaKuna Cevabımı kontrol ettim
atevm

4

@ serv-inc answerear burada en iyi yaklaşımdır:

(setq python-shell-interpreter "ssh yourhost ipython" python-shell-interpreter-args "--simple-istemi -i")

ancak yine de hata ile başarısız olur:

No such file or directory, ssh\

Yolunuzdaki bir yürütülebilir dosyaya başvurmanız gerekir, bu nedenle doğrudan kabuk komutları oynatılmaz, ancak bir sarıcı komut dosyası yazmanız sorunu çözecektir, diyelim remote-python:

#!/usr/bin/env bash
ssh hostname -t "ipython $@"

-t sözde terminal tahsisini zorlar.

$@ alınan tüm argümanları uzak ipython'a devredecektir.

Bu komut dosyasının, PATHdeğişkeninizde tanımlanan bir dizinde olması gerekir . Bunu Emacs'ın içinden kontrol edebilirsiniz:

(getenv "PATH")

remot-pythontercüman olarak ayarlayabilirsiniz :

(setq python-shell-interpreter "remote-python"
            python-shell-interpreter-args "-i --simple-prompt")

Redline desteği hakkında bir uyarı alırsanız:

(setq python-shell-completion-native-enable nil)

Not:

Bu yöntemin güzelliği, hemen hemen her tercümanla çalışması gerektiğidir. Julia modunun REPL'i ile de test ettim ve uzaktan / yerel tercümanlarınızı değiştirmek için etkileşimli bir işlev yazabilirsiniz.


Biraz yardımcı olduğunu bilmek güzel. Teşekkürler
serv-inc

0

Değerlendirmeyi deneyin (hatta içeri girin .emacs)

(setq python-shell-interpreter "ssh yourhost ipython"
      python-shell-interpreter-args "--simple-prompt -i")

ve herhangi bir python dosyasında yerel değerlendirme gibi kullanın.

İlk satır, uzaktan kumandayı ipythonvarsayılan yorumlayıcı olarak ayarlar . İkinci satır bir ipython sorununu çözer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.