Saya mencoba menjalankan interpreter ipython jarak jauh (dengan Emacs 24.5 dan asli python.el
), tapi saya tidak yakin saya memiliki pendekatan yang tepat: setiap kali saya mencoba menjalankan perintah seperti misalnya (yang dipicu dengan C-c C-c
):
Run Python: /ssh:<server_name>:/usr/local/bin/ipython -i
(dengan <server_name>
entri yang valid di saya ~/.ssh/config
, dan ipython
tersedia di lokasi terpencil itu), saya mendapatkan kesalahan seperti:
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'
sebaik:
env: /ssh:<server_name>:/usr/local/bin/ipython: No such file or directory
dalam *Python*
buffer .. Apakah ini memanfaatkan tramp
, dan python.el
dapat menjalankan interpreter jarak jauh sedemikian rupa?
@ serv-inc jawab adalah pendekatan terbaik di sini:
tetapi masih akan gagal dengan kesalahan:
Anda harus mereferensikan executable di path Anda, jadi perintah shell langsung tidak bisa dimainkan, tetapi menulis skrip wrapper akan menyelesaikannya, beri nama
remote-python
:-t
akan memaksa alokasi terminal semu.$@
akan mendelegasikan semua argumen yang diterima ke ipython jarak jauh.Skrip ini harus berada di direktori yang didefinisikan dalam
PATH
variabel Anda . Anda dapat memeriksa ini di dalam Emacs dengan:maka Anda dapat menetapkan
remot-python
sebagai juru bahasa Anda:Jika Anda mendapat peringatan tentang dukungan redline:
catatan:
Keindahan metode ini, bahwa itu harus bekerja dengan hampir setiap penerjemah. Saya juga mengujinya dengan REPL julia-mode dan Anda dapat menulis fungsi interaktif untuk mengganti penerjemah jarak jauh / lokal Anda.
sumber
Coba evaluasi (atau bahkan dalam
.emacs
)dan gunakan seperti eval lokal Anda pada file python apa pun.
Baris pertama menetapkan remote
ipython
sebagai penerjemah default Anda. Baris kedua memperbaiki masalah ipython.sumber