Virtualenv & Virtualenvwrapper Setup in Python 3 on Ubuntu Focal Fossa
Python
This article outlines Virtualenv and Virtualenvwrapper installation on Python 3 on Ubuntu.
A virtual environment in Python is an isolated working copy of Python and associated modules that allows you to work on a specific project without fear of affecting other projects or your system as a whole.
Virtualenv
virtualenv
creates a folder which holds all the necessary modules for a project.
A new virtual environment is created by:
cd project_directory
virtualenv my_project
You could also keep all virtual environments in one directory, and activate your environment by referencing this.
An environment is started by sourcing a file bin/activate
located in the isolated environment. For example:
. /path_to_environments/my_project/bin/activate
This changes your prompt to reflect the virtual environment - in this case: (my_project)
.
Once you have used pip
to install modules within the environment, you can easily reproduce the specific context by creating a requirements.txt
manifest file with the pip freeze
command:
pip freeze > requirements.txt
You can add this file into version control, and use it to set up a new virtualenv as required:
# Set up a new virtualenv
# Install dependencies in the requirements.txt
pip install -r requirements.txt
Install Virtualenv
Install pip3
if necessary:
sudo apt install python3-pip
Add an alias for the pip3
command. Add to .bashrc
if you want to make this permanent:
alias pip='pip3'
Install Virtualenv:
pip install virtualenv
Virtualenvwrapper
virtualenvwrapper
is a set of shell functions that serve as extensions tovirtualenv
.
The extensions include wrappers for creating and deleting virtual environments and otherwise managing your development workflow, making it easier to work on more than one project at a time without introducing conflicts in their dependencies.
Install Virtualenvwrapper
pip install virtualenvwrapper
Add the following to .bashrc
or .profile
:
# Next line not necessary unless you want to specify a different location - ~/.virtualenvs is the default
export WORKON_HOME=$HOME/.virtualenvs
# $PROJECT_HOME tells virtualenvwrapper where to place project working directories.
# This is required for the `mkproject` command.
export PROJECT_HOME=$HOME/Devel
# Source the script, making functions available in the shell
source /usr/local/bin/virtualenvwrapper.sh
Virtualenvwrapper Quickstart
- Run
workon
: display a list of environments (which will be empty on first run) - Run:
mkvirtualenv temp
: a new environmenttemp
is created and activated - Run:
workon
: the newtemp
environment is included deactivate
to return to the system installed Python
References
comments powered by Disqus