Overview
This guide/article shows how to install, configure/create and use a Python Virtual environment.
Prerequisites
- Operating System: Ubuntu 16 or greater
- Python is installed. Python 3.X or 2.X.
Steps
Check that Python is available on the system. The Python version should be returned.
# If Python 2.x $ python --version # If Python 3.x $ python3 --version
For the next steps, we will be using Python 3.7 for the sample, but should still be usable for Python 2.X.
01. Install Python Pip. Pip is a package manager for Python.
$ sudo apt-get update $ sudo apt-get install python3-pip -y
02. Verify that Pip has been installed.
$ pip3 --version
03. Install the Python Virtual environment
$ sudo apt-get install python3-venv
04. Navigate to the directory on where to create the Virtual environment. In this example, we will be creating the virtual environment on the HOME directory.
$ cd ~ # FORMAT $ python3 -m venv # SAMPLE $ python3 -m venv dotlah-python-venv
Note that this command will create a Virtual Environment that uses the current version of Python. Which is Python 3.7 in this example.
05. Activate the virtual environment.
$ cd ~ $ source dotlah-python-venv/bin/activate
06. If the terminal or shell has been prepend with the name of the virtual environment. Then the Virtual environment has been activated successfully.
Advantages
“Python applications will often use packages and modules that don’t come as part of the standard library. Applications will sometimes need a specific version of a library, because the application may require that a particular bug has been fixed or the application may be written using an obsolete version of the library’s interface.”
— https://docs.python.org
— Virtual environment helps isolate the dependencies of different projects separate from each other
— Different applications can use different virtual environments with different python packages or libraries
— Different virtual environments can also be used for testing different versions of a Python package. Example is when migrating or upgrading from a lower version to a newer version. Checking if there will be incompatibilities with new version.