
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.