J'essaie d'exécuter un interpréteur ipython à distance (avec Emacs 24.5 et natif python.el
), mais je ne suis pas sûr d'avoir la bonne approche: chaque fois que j'essaie d'exécuter une telle commande par exemple (qui se déclenche avec C-c C-c
):
Run Python: /ssh:<server_name>:/usr/local/bin/ipython -i
(avec <server_name>
une entrée valide dans mon ~/.ssh/config
, et ipython
disponible à cet emplacement distant), j'obtiens une erreur comme:
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'
aussi bien que:
env: /ssh:<server_name>:/usr/local/bin/ipython: No such file or directory
dans un *Python*
tampon .. Est - ce faisant usage de tramp
, et est en python.el
mesure d'exécuter des interprètes à distance à façon telle?
@ serv-inc answerear est la meilleure approche ici:
mais il échouera toujours avec l'erreur:
Vous devez référencer un exécutable sur votre chemin, afin que les commandes shell directes ne soient pas lues, mais l'écriture d'un script wrapper résoudra cela, nommons-le
remote-python
:-t
forcera l'allocation du pseudo-terminal.$@
déléguera tous les arguments reçus à l'ipython distant.Ce script doit se trouver dans un répertoire défini dans votre
PATH
variable. Vous pouvez vérifier cela dans Emacs avec:alors vous pouvez définir
remot-python
comme votre interprète:Si vous recevez un avertissement concernant l'assistance Redline:
Remarque:
La beauté de cette méthode, qu'elle devrait fonctionner avec presque tous les interprètes. Je l'ai également testé avec REPL en mode julia et vous pouvez écrire une fonction interactive pour changer vos interprètes distants / locaux.
la source
Essayez d'évaluer (ou même en
.emacs
)et utilisez comme votre eval local sur n'importe quel fichier python.
La première ligne définit la télécommande
ipython
comme votre interprète par défaut. La deuxième ligne corrige un problème ipython.la source