Python Virtual Environment

Python 8 min min read Updated: Mar 09, 2026 Beginner
Python Virtual Environment
Beginner Topic 10 of 10

Virtual Environment in Python

When working on Python projects, developers often need different versions of libraries or packages for different applications. Installing all packages globally can create conflicts between projects. To solve this problem, Python provides a feature called a virtual environment.

A virtual environment allows developers to create an isolated workspace for each Python project. Inside this environment, you can install packages and dependencies without affecting other projects on your system.

What is a Virtual Environment?

A virtual environment is a self-contained directory that contains a separate Python interpreter and its own installed libraries. This ensures that the dependencies of one project do not interfere with another project.

For example, one project might require Django 3, while another project may require Django 4. Using virtual environments allows both projects to run smoothly without conflicts.

Why Use a Virtual Environment?

  • Isolates project dependencies
  • Prevents package version conflicts
  • Keeps the global Python installation clean
  • Makes project setup and deployment easier
  • Improves collaboration among developers

Creating a Virtual Environment

Python provides a built-in module called venv that allows you to create virtual environments easily.

Run the following command in the terminal:

bash python -m venv myenv

This command creates a new virtual environment folder named myenv.

Virtual Environment Directory Structure

After creating the environment, a folder structure similar to the following will be created:

  • bin / Scripts – Contains the Python executable
  • lib – Contains installed packages
  • include – Contains header files
  • pyvenv.cfg – Configuration file for the environment

Activating the Virtual Environment

Before installing packages, you must activate the virtual environment.

On Windows

bash myenv\Scripts\activate

On macOS or Linux

bash source myenv/bin/activate

Once activated, the terminal prompt will show the environment name, indicating that the virtual environment is active.

Installing Packages in a Virtual Environment

After activating the environment, you can install packages using pip. These packages will only be installed inside the virtual environment.

bash pip install requests

This installs the requests library inside the environment without affecting the global Python installation.

Checking Installed Packages

You can view all installed packages using the following command:

bash pip list

Saving Project Dependencies

To share your project with others, you can export the list of installed packages into a file called requirements.txt.

bash pip freeze > requirements.txt

This file contains all dependencies required to run the project.

Installing Dependencies from requirements.txt

Other developers can install the same dependencies using:

bash pip install -r requirements.txt

Deactivating the Virtual Environment

After finishing your work, you can deactivate the environment and return to the global Python environment.

bash deactivate

Real-World Example

Suppose you are developing a web application using Flask. Instead of installing Flask globally, you can create a project-specific environment.

bash python -m venv flaskenv source flaskenv/bin/activate pip install flask

This ensures that Flask is installed only for that project.

Best Practices for Virtual Environments

  • Create a separate virtual environment for each project.
  • Always activate the environment before installing packages.
  • Use requirements.txt to manage dependencies.
  • Do not commit the virtual environment folder to version control.
  • Add the environment folder to .gitignore.

Conclusion

Virtual environments are a powerful feature in Python that help developers manage project dependencies effectively. By isolating packages and libraries, they prevent conflicts and make projects easier to maintain and share.

Understanding virtual environments is an essential skill for every Python developer, especially when working on professional or large-scale projects.

In the next tutorial, we will learn about Python Package Management with pip and how to install and manage external libraries.

Get Newsletter

Subscibe to our newsletter and we will notify you about the newest updates on Edugators