Краткий ответ: не без написания недостающего кода elisp.
Длинная версия: В python.el
, run-python
добавляет data-directory
(который на моем Ubuntu 10.10 поле /usr/share/emacs/23.1/etc/
) к $PYTHONPATH
, в частности, чтобы он мог найти emacs.py
(как предоставлено местным Распределение emacs.) Затем он делает (python-send-string "import emacs")
и ожидает, что он будет работать ...
Похоже, что defadvice
оболочки, используемые tramp
, на самом деле не передают PYTHONPATH
, поэтому это не сработает, даже если у вас есть соответствующая версия emacs в удаленной системе.
Если вы M-x customize-variable RET tramp-remote-process-environment RET
затем нажмите одну из кнопок INS
и добавьте PYTHONPATH=/usr/share/emacs/23.1/etc
, затем нажмите STATE
и установите для нее значение «текущий сеанс» (просто для проверки или «сохранить для будущих сеансов», если он работает для вас), это почти работает - жалоба уходит, в любом случае, потому что удаленный питон теперь может найти удаленный emacs.py
. Если вы теперь вернетесь к исходному вопросу, выполнив python-send-buffer
, вы просто столкнетесь с другой ошибкой: No such file or directory: '/tmp/py24574XdA'
, потому что python-mode
просто вставляет содержимое во временный файл и говорит подпроцессу python загрузить его.
Вам придется изменить python-send-region
(другие функции вызывают его) и, в частности, способ, которым он использует make-temp-file
, чтобы быть в курсе событий - есть даже tramp-make-tramp-temp-file
, на который вы, вероятно, могли бы опираться. (Не забудьте опубликовать его, если вы делаете ...)