Emacs Remote Python Interpreter

Registered by Andreas Roehler

Am 04.06.2012 22:57, schrieb Matt McClure:
> I'd like to use Emacs as my IDE for a Python project as follows:
>
> 1. Emacs running on a Mac host machine.
> 2. Python running on a Linux guest VM.
> 3. A single copy of the code shared between the host and guest
> machines via NFS or VirtualBox shared folder.
>
> Emacs on the host machine would use the guest VM's Python interpreter
> for all execution, including code completion and debugging. I imagine
> using directory-local variables to configure a remote Python
> interpreter and a mapping between the respective host and guest
> filesystem path prefixes.
>
> What I'm looking for is pretty similar to [PyCharm's remote python
> interpreters][1]. Has anyone built something similar for Emacs, for
> Python environments or for any other language? I built a little
> [prototype][2], but it's just a toy so far.
>
> [1]: http://www.jetbrains.com/pycharm/webhelp/configuring-remote-python-interpreters.html
> [2]: https://github.com/matthewlmcclure/emacs-remote-python
>

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Informational Informational
Milestone target:
None
Started by
Andreas Roehler
Completed by
Andreas Roehler

Sprints

Whiteboard

Am 06.06.2012 15:58, schrieb Michael Albinus:
> Michael Albinus<email address hidden> writes:
>
>> (setq enable-local-variables t)
>
> Cut'n'waste. You must set
>
> (setq enable-remote-dir-locals t)
>
> Best regards, Michael.

The remote dir locals method allows emacs to consume the .dir-local file on a remote host. I doesn't necessarily equal remote execution.

Tramp mode already supports communication with a remote shell, remote execution can be accomplished if the temporary files are placed on the remote host then passed to the remote interpreter using a local path. I have had no problems with this approach so far.

Otherwise the code can be base64 encoded then executed like exec(base64.decodes("%s")) if temporary files are too slow.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.