リモートでipythonを実行する


9

私はipythonインタープリターをリモートで(Emacs 24.5およびnativeを使用してpython.el)実行しようとしていますが、適切なアプローチがあるかどうかはわかりませんC-c C-c

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

<server_name>私の中~/.ssh/configに有効なエントリがipythonあり、そのリモートの場所で利用可能です)、私は次のようなエラーを受け取ります:

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'

と同様:

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

*Python*バッファ..この製造使用することであるtramp、とされpython.el、このようなAの方法で、遠隔通訳を実行することができ?

回答:


5

1つの方法はを使用すること*eshell*です。

  • M-x eshell
  • cd /ssh:<server_name>:~
  • run-python /usr/bin/ipython
  • *Python*バッファに切り替えます。

3
これはすばらしいことですが、コードをPythonバッファに送信することはできません。あれは正しいですか?
BakaKuna

@BakaKuna私は答えを確認して解決しました
atevm

4

@ serv-inc answearがここでの最良のアプローチです。

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

しかし、それでもエラーで失敗します:

No such file or directory, ssh\

パス上の実行可能ファイルを参照する必要があるため、ダイレクトシェルコマンドは再生されませんが、ラッパースクリプトを作成すると解決します。名前を付けましょうremote-python

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

-t 疑似端末割り当てを強制します。

$@ 受け取ったすべての引数をリモートのipythonに委任します。

このスクリプトは、PATH変数で定義されているディレクトリにある必要があります。Emacs内でこれを確認するには:

(getenv "PATH")

その後remot-python、あなたの通訳として設定することができます:

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

赤入れのサポートに関する警告が表示された場合:

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

注意:

このメソッドの美点は、ほとんどすべてのインタープリターで機能することです。また、julia-modeのREPLでテストしました。リモート/ローカルインタープリターを切り替えるためのインタラクティブ関数を作成できます。


それが少し役に立ったと知ってよかった。ありがとう
serv-inc 2018

0

評価してみてください(またはでも.emacs

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

そして、任意のpythonファイルでローカル評価のように使用します。

最初の行は、リモートipythonをデフォルトのインタープリターとして設定します。2行目はipythonの問題を修正しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.