Skip to main content
Chadura
Python 18 min read •

What is Python Virtual Environment and How to Use It?

\N

Gnanavel
Gnanavel
Founder and CEO
What is Python Virtual Environment and How to Use It?
01

Overview

Python is a powerful, flexible programming language widely used in various industries. However, managing Python dependencies can become challenging, especially when working on multiple projects requiring different package versions. This is where Python Virtual Environments come into play. A virtual environment is a self-contained directory that contains a specific version of Python and a set of installed packages, isolated from the global Python environment.

In this blog, we’ll discuss what Python virtual environments are, why you should use them, and how to create and manage them efficiently.

Why Use a Virtual Environment?

Virtual environments are essential for Python development because they help to:

  • Isolate Project Dependencies: Different projects may require different versions of the same library. Virtual environments isolate each project’s dependencies, preventing version conflicts.
  • Avoid System-Level Changes: Installing or updating packages globally could break other projects. Virtual environments allow you to manage packages without affecting the global Python installation.
  • Easier Collaboration: When collaborating on a project, you can share the environment’s configuration file ( requirements.txt ), making it easy for others to recreate the same development environment.

 Setting Up a Python Virtual Environment

Python provides the venv module to create virtual environments. You can create and activate virtual environments easily, as shown below.

Step 1: Install Python (if not installed)

First, make sure Python is installed on your machine. You can check this by running:

Code / Terminal
python --version

Python is not installed, you can download and install it from python.org

Step 2: Create a Virtual Environment

Navigate to your project directory, and run the following command to create a virtual environment:

Code / Terminal
python -m venv myenv
  • venv : This is the module responsible for creating virtual environments.
  • myenv : This is the name of the virtual environment folder. You can choose any name.

After running the command, a new directory (myenv) is created containing a Python executable and a local copy of pip (the Python package manager).

Step 3: Activate the Virtual Environment

Once the virtual environment is created, you need to activate it to use the isolated environment.

- On Windows:

Code / Terminal
  myenv\\Scripts\\activate  

- On macOS/Linux:

Code / Terminal
  source myenv/bin/activate

After activation, you’ll notice that your terminal prompt changes to indicate that you’re working inside the virtual environment, like this: `(myenv)`.

Step 4: Install Packages in the Virtual Environment

With the virtual environment activated, you can install packages using pip, which is isolated from the global environment.

For example, to install the requests library:

Bash / Terminal
pip install requests

You can verify the installation by running:

Bash / Terminal
pip freeze

This will list all installed packages in the virtual environment.

Step 5: Deactivate the Virtual Environment

To exit the virtual environment and return to your global Python environment, simply run:

Code / Terminal
deactivate

Your terminal prompt will return to its default state, indicating that the virtual environment is no longer active.

 Managing Virtual Environments

02

1. Storing Environment Configuration

You can save the list of installed packages into a file (requirements.txt) and share it with others for easy setup:

Bash / Terminal
pip freeze > requirements.txt

To recreate the environment from this file on another machine, run:

Bash / Terminal
pip install -r requirements.txt
03

2. Deleting a Virtual Environment

If you no longer need a virtual environment, you can safely delete it by removing the folder where the environment was created. For example, if your virtual environment is stored in myenv, simply delete that folder:

Code / Terminal
rm -rf myenv

 Example Project: Flask Application Using a Virtual Environment

Let’s walk through an example where we create a simple Flask web application within a virtual environment.

Step 1: Create and Activate a Virtual Environment

Code / Terminal
python -m venv flaskenv
source flaskenv/bin/activate   On Windows, use flaskenv\\Scripts\\activate

Step 2: Install Flask

With the environment active, install Flask:

Bash / Terminal
pip install Flask

Step 3: Create a Simple Flask Application

Create a file named app.py with the following content:

Docker
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

Step 4: Run the Flask Application

In the terminal, run the Flask app:

Code / Terminal
python app.py

Open a browser and go to http://127.0.0.1:5000/ to see your Flask app in action.

Step 5: Deactivate the Virtual Environment

After you are done with the project, deactivate the virtual environment:

Code / Terminal
deactivate 

Best Practices for Using Virtual Environments

1. Create a virtual environment for every project: Ensure that each project has its own virtual environment to avoid conflicts.

2. Use requirements.txt: Always use pip freeze > requirements.txt to record the exact package versions used in a project.

3. Use .gitignore: If you're using version control (e.g., Git), add the virtual environment directory (e.g., myenv/) to .gitignore so it’s not tracked.

04

Conclusion

Python virtual environments are a powerful tool for managing dependencies in isolated environments, preventing version conflicts, and ensuring consistent behavior across projects. By following the steps and best practices outlined in this blog, you’ll be well-equipped to manage Python projects efficiently and effectively. Whether you're developing web applications or working on machine learning models, virtual environments will help keep your projects organized and conflict-free.

Further Reading:

  • Python Virtual Environments Documentation
  • Managing Packages with pip
Gnanavel

Gnanavel

Founder and CEO

Founder and CEO

Related Technical Articles

Explore additional architectural breakdowns in Python.

M

Maya Solutions Architect

Ask about products & scoping →

WhatsApp Direct Help