Python20 min read
Python Virtual Environments
Understand why virtual environments matter, how to create them, and how they prevent dependency conflicts in real projects.
Michael Brown
August 15, 2025
4.9k122
As soon as you install third-party packages, you need a clean way to keep project dependencies separate.
A virtual environment is basically a project-specific Python + site-packages folder.
Why it matters:
- Project A might need `requests` version 2.31
- Project B might need a different version
- Without venv, packages collide and projects break
## Create a virtual environment
Inside your project folder:
```bash
python -m venv .venv
```
## Activate it
### Windows (PowerShell)
```bash
.venv\Scripts\Activate.ps1
```
### macOS/Linux
```bash
source .venv/bin/activate
```
After activation, your terminal usually shows `(.venv)`.
## Install a package inside the venv
```bash
pip install requests
```
## Freeze dependencies (share with others)
```bash
pip freeze > requirements.txt
```
Later, anyone can install:
```bash
pip install -r requirements.txt
```
## Deactivate
```bash
deactivate
```
## Graph: dependency isolation
```mermaid
flowchart LR
A[Project A] --> B[(venv A)]
C[Project B] --> D[(venv B)]
B --> E[Packages A]
D --> F[Packages B]
```
Now Project A and Project B do not conflict.
This is one of the most important habits to build early, because it saves hours of debugging later.
#Python#Intermediate#Environment