Python Virtual Environment

Python Virtual Environment

Conda

How to set up a virtual environments using conda for the Anaconda Python distribution

A virtual environment is a named, isolated, working copy of Python that that maintains its own files, directories, and paths so that you can work with specific versions of libraries or Python itself without affecting other Python projects. Virtual environmets make it easy to cleanly separate different projects and avoid problems with different dependencies and version requiremetns across components. The `conda` command is the preferred interface for managing intstallations and virtual environments with the Anaconda Python distribution. If you have a vanilla Python installation or other Python distribution see `virtualenv`.

1. Check conda is installed and in your PATH

Open a terminal client. Enter conda -V into the terminal command line and press enter. If conda is installed you should see something like the following.

$ conda -V
conda 3.7.0

2. Check conda is up to date

conda update conda

3. Create a virtual environment for your project

In the terminal client enter the following where yourenvname is the name you want to call your environment, and replace x.x with the Python version you wish to use. (To see a list of available python versions first, type conda search "^python$" and press enter.)

conda create -n yourenvname python=x.x anaconda

4. Activate your virtual environment

To activate or switch into your virtual environment, simply type the following where yourenvname is the name you gave to your environement at creation.

source activate yourenvname

5. Install additional Python packages to a virtual environment

To install additional packages only to your virtual environment, enter the following command where yourenvname is the name of your environemnt, and [package] is the name of the package you wish to install. Failure to specify -n yourenvname will install the package to the root Python installation.

conda install -n yourenvname [package]

6. Deactivate your virtual environment

To end a session in the current environment, enter the following. There is no need to specify the envname - which ever is currently active will be deactivated, and the PATH and shell variables will be returned to normal.

source deactivate

7. Delete a no longer needed virtual environment

To delete a conda environment, enter the following, where yourenvname is the name of the environment you wish to delete.

conda remove -n yourenvname -all

Python3

If you want to work without conda you can work directly with python3.

The python3-venv module allows us to create lightweight virtual environments with their own site directories, optionally isolated from system site directories. Given that, we will be able to run multiple Python 3 environments with varying dependencies on the same computer.

1. Create a virtual environment for your project

python3 -m venv ~/yourenvname

2. Activate your virtual environment

In order to get into your Python 3 virtual environment with your terminal window, you need to run the activate script.

source ~/yourenvname/bin/activate

3. Install additional Python packages to a virtual environment

After the command complete, you will find that your terminal prompt is appended with (yourenvname). While inside this virtual environment, you can install any Python dependencies with the pip command.

pip install [package]

4. Deactivate your virtual environment

In order to get out of your Python 3 virtual environment, run:

deactivate

Jupyter Notebooks

1. Activate your virtual environment

First, activate your virtual environment and make sure you have ipykernel installed.

source activate myenv
pip install --user ipykernel

2. Install kernel

We need to manually add the kernel if we want to have the virtual environment in the Jupyter Notebook.

python -m ipykernel install --user --name yourenvname --display-name "Python (myenv)"

With this, we have set up our virtual environment kernel and ready to be used in the Jupyter Notebook. The notebook now has all the installed packages in this environment.

3. Uninstall

If you want to remove it, run:

jupyter kernelspec uninstall yourenvname