Creating isolated development environments with Virtualenv
The traditional approach to developing applications in Python is to isolate these applications in a virtual environment. This is done to avoid installing packages globally and reduce conflicts during application development.
A virtual environment is an isolated environment where application dependencies installed can only be accessed within it. As a result, the application can only access packages and interact only within this environment.
Creating a virtual environment
By default, the venv
module from the standard library is installed in Python3. The venv
module is responsible for creating a virtual environment. Let’s create a todos
folder and create a virtual environment in it by running the following commands:
$ mkdir todos && cd todos $ python3 -m venv venv
The venv
module takes an argument, which is the name of the folder where the virtual environment should be installed into. In our newly created virtual environment, a copy of the Python interpreter is installed in the lib
folder, and the files enabling interactions within the virtual environment are stored in the bin
folder.
Activating and deactivating the virtual environment
To activate a virtual environment, we run the following command:
$ source venv/bin/activate
The preceding command instructs your shell to use the virtual environment’s interpreter and packages by default. Upon activating the virtual environment, a prefix of the venv
virtual environment folder is added before the prompt as follows:
To deactivate a virtual environment, the deactivate
command is run in the prompt. Running the command immediately exits the isolated environment and the prefix is removed as follows:
Important Note
You can also create a virtual environment and manage application dependencies using Pipenv and Poetry.
Now that we have created the virtual environment, we can now proceed to understand how package management with pip works.