Using Wing with virtualenv


Wing Pro Screenshot Wing Pro Screenshot

Wing is a Python IDE that can be used to develop, test, and debug Python code running in virtualenv.

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

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

Creating a New Virtualenv

Wing can create a new virtualenv at the same time that you create a new project. To do this, select New Project from the Project menu and choose the source directory to use with your new project with the New directory, Existing directory, or Clone repository card. Then, under Python, set Environment to New Env and Manager to Virtualenv, which is the default the first time.

The virtualenv is created as .venv inside the new or existing source directory. To put it elsewhere, click All Options and change these values:

Name is the name for your virtualenv directory.

Parent Directory is the directory where the virtualenv directory will be created.

You may also specify the following values:

Packages to Install lets you specify packages to install into the new virtualenv. This is either a space-separated list of pip package specifications under Package Names, or a Package File such as requirements.txt. In either case, the package specifications may be anything accepted by pip, such as a package name, package==version, and package>=version.

Python Executable selects the base Python installation to use. In Python 2, you must install virtualenv into the selected Python first, if it's not already present.

Upgrade pip selects whether Wing should upgrade pip in the virtualenv before installing any packages, to compensate for the fact that virtualenv installs an old version of pip even if the base Python installation has a newer one.

Inherit global site-packages controls whether to use the --system-site-packages option when running virtualenv. When checked, the virtualenv will be able to use packages installed into the base Python installation. Otherwise, it will be completely isolated from the base install, other than its use of Python's standard libraries.

After submitting the New Project dialog, Wing will create the virtualenv, set the Python Executable in Project Properties to the command that activates the environment, and add the virtualenv directory to the project.

Now source analysis, executing, debugging, and testing in Wing will use the new virtualenv, as long as the project you just created is open.

Working on a Remote Host

Wing can also create a new virtualenv on a remote host. This is done the same way as described above, except you first need to choose or create a remote host configuration from the Host menu in the New Project dialog, after pressing All Options if it is shown.

If you are using a virtualenv on the remote host, Wing will update the remote host configuration to use that virtualenv.

Using an Existing Virtualenv

To use an existing virtualenv with Wing, simply set the Python Executable in Wing's Project Properties to Activated Env and enter the command that activates the environment. In the New Project dialog, set Environment to Existing Env and select the virtualenv in Activate, or select Other: there to enter its full path. Wing uses this to determine the environment to use for source analysis and to execute, test, and debug your code. In this case, Wing starts Python by running python in that environment.

Alternatively, Python Executable can be set to Command Line in Project Properties, or to Existing Python in the New Project dialog, and Other: chosen from its drop down to enter the full path to the virtualenv's python.exe or python. Wing activates the virtualenv in this case too. In All Options, the Python Envs submenu under Existing Python lists the virtualenvs Wing found. The easiest way to find the correct value to set is to launch your virtualenv Python outside of Wing and execute the following:

import sys
print(sys.executable)

Activating the Virtualenv

If you followed the above instructions, Wing will automatically activate the virtualenv while you're using your project.

A virtualenv that was moved or copied from where it was created still names the original location in its activate script, so activating it that way would use the original environment. The New Project dialog marks such a virtualenv (moved) and sets it up as Command Line, which Wing activates from the environment's own directory. The environment's scripts may still refer to the original, so creating the virtualenv again is the best fix.

An alternative approach is to leave Python Executable unset and instead activate the virtualenv on the command line and then start Wing from the command line so that it inherits the virtual environment. However, this is not recommended because the inherited environment may conflict with virtual environments used by other projects.

Package Management

Once you've configured your project to use a virtualenv, you can use the Packages tool in the Tools menu to list, add, remove, or update packages. See Package Manager for details.

Using Virtualenv with Anaconda

Anaconda implements its own named environments, created by conda create but it is also possible to use virtualenv with Anaconda. This works in the same way, except that on Windows Wing will automatically call conda activate base before it sets up your virtualenv. This is needed to avoid failure to import some modules as a result of missing environment. See About Anaconda Environments in the Anaconda How-To for details.

Related Documents

For more information see: