Creating a Virtual Environment (venv) in Python
Carlos Armando Moreira
Posted on October 8, 2024
Introduction
Virtual environments are an essential tool for Python developers, allowing us to create isolated spaces for our applications. This is especially useful when you need to manage different versions of packages and dependencies without affecting the global system. In this post, I intend to demonstrate how you can create and use a virtual environment in Python.
Creating a Virtual Environment
First, to create a virtual environment, we will need the venv
module, which is already included in the more recent versions of Python (starting from version 3.3). This means that when you install Python, you automatically have access to the functionality to create virtual environments using venv.
1. Creating the Project
First, we need to create a folder that will contain our project. You can do this manually or through the terminal.
mkdir my-project
Navigating into the folder:
cd my-project/
2. Creating the Virtual Environment
To create the virtual environment, type the following command in the terminal:
python -m venv virtual_environment_name
Normally, we use "venv" as the virtual_environment_name, but this is not a rule, and other names should work as well.
After using the command above, note that a folder will be created (with the name you provided), and this folder will be responsible for storing the current version of Python you have, as well as all the libraries used in the project. These libraries will be stored only in this directory and not in the main system, allowing for versatility when working on different projects.
3. Activating the Virtual Environment
On macOS and Linux:
source virtual_environment_name/bin/activate
On Windows:
virtual_environment_name/Scripts/activate
Once this is done, the name of the current virtual environment will be displayed in the terminal prompt, indicating that the environment has been successfully activated. This way, we can install the project dependencies normally without potential conflicts. Simply type pip install
followed by the name of the library you want to install.
4. Replicating Environments
With our virtual environment up and running, we can replicate it on other machines. To do this, we need to export a file containing the libraries used in the project.
pip freeze > requirements.txt
By using this command, a requirements.txt
file will be created, containing all the libraries present in our virtual environment. For example:
Flask==2.3.2
requests==2.32.3
beautifulsoup4==4.12.3
Finally, if we want to run our project on another machine, it won’t be necessary to download the dependencies one by one. We can simply use the command below, and all the libraries listed in the requirements.txt
file will be installed automatically.
pip install -r requirements.txt
5. Deactivating the Virtual Environment
To deactivate a virtual environment and return to the global Python environment, we can type:
deactivate
Conclusion
Virtual environments are a fundamental part of Python development, allowing developers to isolate their applications and manage dependencies effectively. Their use not only prevents conflicts between different projects but also makes sharing and collaborating on projects much simpler.
Additionally, using the requirements.txt
file simplifies the setup of environments on different machines, saving time and effort in manually installing dependencies. In summary, utilizing virtual environments should be a standard practice for any Python developer, contributing to a more organized and efficient workflow.
You can read more about virtual environments in Python at the official documentation: Python venv documentation.
Posted on October 8, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.