Remote Development


Wing Pro can work with Python code that is stored on a remote host, device, virtual machine, or container in the same way that you work with code stored locally. This includes editing, debugging, testing, searching, version control, running a Python shell, executing command lines, and project management.

Remote development is supported to macOS and Linux (Intel or ARM). A detailed list of supported remote host types is available in Supported Platforms. Wing Pro itself can be running on Windows, Linux, or macOS.

The form of remote development documented here works directly with files and resources stored on the remote host. If you are working with containers like those provided by Docker, then please see Working with Containers for an approach that is more appropriate for cases where a container is built from locally stored files.

How it Works

Wing's remote development support works by installing a remote agent that carries out operations on the remote host. All communication to the remote host is over secure SSH tunnels, one to access the remote agent and one for the debugger.

/images/doc/en/proj/remote-agent.png

Files are stored on the remote host, and everything you do is run on the remote host, including running tests, debugging, executing files and command lines, searching, and issuing version control operations.

The remote agent replaces the need for setting up file sharing to the remote host, manually establishing SSH tunnels, defining file location maps, and other manual configuration steps required for remote debugging in Wing 5 and earlier.

If you have used wingdbstub for manually configured remote debugging in the past, you can continue to use that approach. Or you can switch to the new approach, which supports both launching your remote debug process directly from Wing or continuing to use wingdbstub through the remote agent if you need to launch your code from outside of the IDE.

If you prefer to store the master copy of your code on your local system, you can do this as well by setting up file sharing to the remote host using Samba, NFS, or other method. However, you will still use the remote agent to access the files on the remote system, rather than opening them directly from local disk into the IDE.

Configuration Overview

There are several steps in setting up remote development:

1) Set up SSH access to your remote system. In many cases this is already in place, using ssh or plink on the command line. Wing can just invoke those command line tools, or you can configure Wing to use its own built-in SSH implementation.

2) Define a remote host configuration to tell Wing about the remote host and how to access it.

3) Set up a remote project in much the same way as is done for local projects.

These steps are detailed in the next three sections.