Я пытаюсь запустить интерпретатор ipython удаленно (с Emacs 24.5 и нативным 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
может ли запускать удаленные интерпретаторы таким образом?
@ serv-inc answerear - лучший подход здесь:
но все равно не получится с ошибкой:
Вы должны ссылаться на исполняемый файл на вашем пути, чтобы прямые команды оболочки не играли, но написание сценария-оболочки решит это, назовем его
remote-python
:-t
принудительно назначит псевдо-терминал.$@
делегирует все полученные аргументы удаленному ipython.Этот скрипт должен находиться в каталоге, который определен в вашей
PATH
переменной. Вы можете проверить это внутри Emacs с помощью:тогда вы можете установить в
remot-python
качестве вашего переводчика:Если вы получили предупреждение о поддержке redline:
Замечания:
Прелесть этого метода в том, что он должен работать практически с каждым переводчиком. Я также протестировал его с помощью REPL в julia-mode, и вы можете написать интерактивную функцию для переключения ваших удаленных / локальных переводчиков.
источник
Попробуйте оценить (или даже в
.emacs
)и использовать как ваш локальный eval в любом файле python.
Первая строка устанавливает пульт в
ipython
качестве вашего интерпретатора по умолчанию. Вторая строка исправляет проблему с ipython.источник