Using Wing with Vagrant

Index of All Documentation » How-Tos » How-Tos for Other Frameworks and Tools »

Wing is a Python IDE that can be used to develop, test, and debug Python code running on Vagrant containers.

This document describes how to configure Wing for Vagrant. To get started using Wing as your Python IDE, please refer to the tutorial in Wing's Help menu or read the Quickstart Guide.


This guide assumes you have already installed and started using Vagrant. Wing supports working with Vagrant boxes running Linux (32-bit or 64-bit) or OS X. Other OS types, such as FreeBSD, won't work.

If you do not already have Wing installed, download it now.

Creating a Project

Creating a Wing project for an existing Vagrant container is easy:

  • Start your container with vagrant up
  • Use New Project from the Project menu and then select Connect to Vagrant as your project type
  • Fill in the full path to your Vagrant project directory (which contains your Vagrantfile) and press OK
  • Only on Windows with PuTTY, you will be asked to convert Vagrant's private key into a PuTTY key. To do this, Wing starts puttygen with the private key already loaded into it. Press Save private key to save the key as private_key.ppk in the current directory. Confirm saving without password (the original also doesn't have a password) and then quit puttygen to continue the project setup process in Wing.
  • Install the remote agent when prompted.

Once this is done, Wing should confirm that the remote agent installation is working. Then you can add files and directories and configure your project from the Project menu. You will be able to edit, debug, test, search, and manage files on the container, or launch commands running in the container from Wing's OS Commands tool.

To learn more about Wing's remote development capabilities, see Remote Hosts.

To learn more about Wing's features, take a look at the Tutorial or Quickstart Guide.

How It Works

Wing uses vagrant ssh-config to inspect your Vagrant container and fill in the necessary settings in Wing's project file.

To see the settings that Wing created during New Project, take a look at Project Properties from the Project menu. The Python Executable was set to point to a remote host named vagrant. Click on Edit here or use Remote Hosts in the Project menu to access the remote host configuration. The values that Wing sets up are: Identifier, Hostname, and WINGHOME under the General tab, and SSH Port and Private Key under the Options tab. Settings these values manually achieves exactly the same results as using New Project.

The installation process will also add the Vagrant container's SSH host key as a known host in ~/.ssh/known_hosts (or in the registry if using PuTTY on Windows).

Usage Hints

Synced Folders

As far as Wing is concerned, all files and directories are located in the Vagrant container and Wing never accesses local copies of the files maintained by Vagrant's synchronization commands.

If you need to update your local copies of files for some other reason while working with Wing, run vagrant rsync, or set up continuous synchronization with vagrant rsync-auto.

Password-less Private Keys

Vagrant uses password-less private keys by default. If you want to use private keys with passwords, you'll need to load the key into the SSH user agent (ssh-agent or pageant for PuTTY) and change Options > Private Key in Wing's vagrant remote host configuration to Use SSH User Agent.

Related Documents

For more information see: