
Virtual environments (venv
) are essential for managing Python dependencies in isolated, reproducible environments. This quick but comprehensive guide covers all major concepts and commands you’ll need.
What is venv?
venv
(Virtual Environment) is a built-in Python module (since 3.3) that creates isolated environments for Python projects. Each environment has its own Python binary and independent set of installed packages.
Why Use venv
?
- Avoid dependency conflicts between projects
- Keep global Python clean
- Reproducible builds & deployments
- Easy collaboration (share
requirements.txt
)
Creating a Virtual Environment
# Syntax
python -m venv <env_name>
# Example
python3 -m venv venv
This creates a folder venv/
containing a standalone Python environment.
Activating a Virtual Environment
- Linux/MacOS
source venv/bin/activate
- Window (PowerShell)
.\venv\Scripts\activate.bat
- Window (CMD)
venv\Scripts\activate.bat
👉 You’ll see (venv)
prefix in your shell after activation.
Deactivating
deactivate
Installing Packages
pip install <package_name>
pip install requests=2.31.0
pip install -r requirements.txt
Freezing Dependencies
Generate a list of all installed packages:
pip freeze > requirements.txt
Re-install later with:
pip install -r requirements.txt
Upgrading Packages
pip install --upgrade pip
pip install --upgrade <package>
Checking Packages
pip list
pip show <package>
Removing Packages
pip uninstall <package>
Useful Tips
- Craete .gitignore and add venv/ to avoid committing environments
- Use python -m venv .venv (dot prefix) – common convention
- Use project-specific requirements.txt or pyproject.toml for reproducibility
Alternatives to venv
- virtualenv – older, widely used, more features
- pipeenv – integrates Pipfile & dependency resulution
- poetry – dependency management + packaging
Best Practices
- Always activate environment before installing packages
- Pin packages versions ( == ) for production apps
- Automate setup
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Quick Reference (Cheet Sheet)
# Create venv
python -m venv venv
# Activate
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows
# Deactivate
deactivate
# Install / Remove
pip install <package>
pip uninstall <package>
# Freeze / Restore
pip freeze > requirements.txt
pip install -r requirements.txt
# Upgrade pip
pip install --upgrade pip
Conclusion
Python venv is light weight, built-in and perfect for project isolation. Mastering it ensures clean, conflicts-free environments and smooth deployment workflows.