Python Docs

Virtual Environments

Virtual environments isolate project dependencies so each project can have its own package versions without conflicts. Always create one per project.

Using venv (Built-in)

venv comes with Python 3.3+, no extra install needed.

# Create virtual environment
python -m venv .venv

# Activate (Windows PowerShell)
..venvScriptsActivate.ps1

# Activate (cmd.exe)
..venvScriptsactivate.bat

# Activate (Linux / macOS)
source .venv/bin/activate

# Install packages inside env
pip install requests pandas

# Save dependencies
pip freeze > requirements.txt

# Deactivate environment
deactivate

Using virtualenv

virtualenv is an older but still widely used tool that works similarly to venv.

pip install virtualenv

# Create environment
virtualenv myenv

# Activate (Linux / macOS)
source myenv/bin/activate

# Activate (Windows)
myenv\Scripts\activate

Using pipenv

pipenv manages virtual environments + dependencies via Pipfile and Pipfile.lock.

pip install pipenv

# Create env + install package
pipenv install requests

# Activate env shell
pipenv shell

# Install dev-only dependency
pipenv install --dev pytest

Tips

  • Use one virtual environment per project.
  • Add .venv/ or myenv/ to .gitignore.
  • Share dependencies via requirements.txt or Pipfile, not the environment folder.
  • Recreate env on a new machine with:
    python -m venv .venv
    source .venv/bin/activate  # or Windows equivalent
    pip install -r requirements.txt