venv
The Python venv module provides support for creating isolated Python virtual environments. This allows you to manage dependencies for different projects separately, preventing conflicts and ensuring that each project has access to the packages it needs.
Here’s a quick example:
>>> import venv
>>> builder = venv.EnvBuilder(with_pip=True)
>>> builder.create("/path/to/virtual/environment")
This module is commonly used from the command line to create virtual environments:
$ python -m venv .venv/
Key Features
- Creates isolated Python environments
- Installs
pipin new environments for package management - Allows customization of the virtual environment creation process
- Enables quick activation and deactivation of environments
- Supports cross-platform environment creation
- Provides a standard, built-in solution for dependency management
- Prevents conflicts between project dependencies
Frequently Used Commands and Options
| Command / Option | Description |
|---|---|
python -m venv ./venv |
Creates a new virtual environment in the ./venv directory |
python -m venv --system-site-packages ./venv |
Gives the environment access to system-wide packages |
python -m venv --clear ./venv |
Clears the environment directory if it already exists |
python -m venv --upgrade ./venv |
Upgrades the environment with the latest Python executable |
source venv/bin/activate (macOS/Linux).\venv\Scripts\activate (Windows) |
Activates the environment |
deactivate |
Deactivates the current virtual environment |
Frequently Used Classes and Functions
| Object | Type | Description |
|---|---|---|
venv.EnvBuilder |
Class | Builds and manages virtual environments |
venv.EnvBuilder.create() |
Method | Creates a virtual environment at the specified path using the builder’s configuration |
venv.create() |
Function | Creates a virtual environment at the specified path |
venv.main() |
Function | Runs the command-line interface (CLI) for virtual environment creation |
Examples
Using EnvBuilder to customize environment creation:
>>> import venv
>>> builder = venv.EnvBuilder(with_pip=True, clear=True)
>>> builder.create("/path/to/virtual/environment")
Common Use Cases
- Creating isolated environments for Python projects
- Managing dependencies separately for each project
- Setting up a clean Python environment for testing and development
- Reproducing consistent environments for collaboration and deployment
- Testing packages in fresh environments before release
- Avoiding dependency conflicts in multi-project workflows
Real-World Example
Imagine you’re a DevOps engineer who needs to automate the setup of project directories, each with its own isolated Python environment. You can use the venv module programmatically to create and configure virtual environments as part of your provisioning scripts:
>>> import pathlib
>>> import venv
>>> def create_project_venv(project_name: str) -> pathlib.Path:
... project_dir = pathlib.Path(project_name)
... env_dir = project_dir / ".venv"
... venv.create(env_dir, with_pip=True)
... return env_dir
...
>>> env_path = create_project_venv("project")
>>> env_path.exists()
True
This function automates the creation of a project directory and its virtual environment. You can now easily set up isolated Python environments for any project by passing the desired directory name to the function.
Related Resources
Tutorial
Python Virtual Environments: A Primer
Create isolated project setups on all platforms, and gain a deep understanding of Python's virtual environments created with the venv module.
For additional information on related topics, take a look at the following resources:
- Pipenv: A Guide to the Python Packaging Tool (Tutorial)
- Install and Execute Python Applications Using pipx (Tutorial)
- Managing Python Projects With uv: An All-in-One Solution (Tutorial)
- Dependency Management With Python Poetry (Tutorial)
- Working With Python Virtual Environments (Course)
- Python Virtual Environments: A Primer (Quiz)
- Working With Pipenv (Course)
- Install and Execute Python Applications Using pipx (Quiz)
- Python Project Management With uv (Course)
- Managing Python Projects With uv: An All-in-One Solution (Quiz)
- Managing Dependencies With Python Poetry (Course)
By Leodanis Pozo Ramos • Updated July 29, 2025