Python Environment Management Workflow

๐ŸŽฏ Overview

A hybrid Python development setup that allows seamless switching between modern Python 3.12.3 for personal projects and legacy Python 3.8.13 for school/work projects.


โš™๏ธ Core Configuration

๐Ÿคฉ Zsh Configuration (~/.zshrc)

# =========================
# ๐Ÿ PYENV CONFIGURATION
# =========================
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

# =========================
# ๐Ÿ“ฆ PIPENV CONFIGURATION
# =========================
export PIPENV_VENV_IN_PROJECT=1

๐Ÿง  Installed Python Versions


๐Ÿš€ Workflow

๐Ÿงช For Modern Projects (Python 3.12.3)

# Create project
mkdir my_modern_project
cd my_modern_project

# Install dependencies (auto-uses Python 3.12.3)
pipenv install flask requests pandas

# Verify Python version
pipenv run python --version  # Python 3.12.3

# Activate environment
pipenv shell

๐Ÿซ For Legacy Projects (Python 3.8.13)

# Create project
mkdir school_project
cd school_project

# Install dependencies with explicit Python version
pipenv --python 3.8 install django flask

# Verify Python version
pipenv run python --version  # Python 3.8.13

# Activate environment
pipenv shell

๐Ÿ“ Project Structure

~/codeWorld2/
โ”œโ”€โ”€ my_modern_api/          # Python 3.12.3
โ”‚   โ”œโ”€ .venv/
โ”‚   โ”œโ”€ Pipfile
โ”‚   โ””โ”€ Pipfile.lock
โ”œโ”€โ”€ school_assignment/      # Python 3.8.13  
โ”‚   โ”œโ”€ .venv/
โ”‚   โ”œโ”€ Pipfile
โ”‚   โ””โ”€ Pipfile.lock
โ””โ”€โ”€ quick_scripts/          # Python 3.12.3
    โ”œโ”€ .venv/
    โ”œโ”€ Pipfile
    โ””โ”€ Pipfile.lock

๐Ÿ› ๏ธ Key Commands

๐Ÿงฌ Environment Management

# Create new environment
pipenv install package_name

# Activate environment
pipenv shell

# Run commands without activating
pipenv run python script.py

# Deactivate environment
exit

# Remove environment
pipenv --rm

๐Ÿคฉ Python Version Management

# List available Python versions
pyenv versions

# Set global Python version
pyenv global 3.12.3

# Set local Python version for project
pyenv local 3.8.13

# Install new Python version
pyenv install 3.8.13

๐Ÿ“ฆ Dependency Management

# Install production dependency
pipenv install requests

# Install development dependency
pipenv install --dev pytest

# Generate requirements.txt
pipenv lock -r > requirements.txt

# Install from existing Pipfile
pipenv install

๐Ÿ”„ Workflow Examples

๐Ÿง  Starting a New Modern Project

mkdir my_fastapi_app
cd my_fastapi_app
pipenv install fastapi uvicorn
pipenv run python --version  # 3.12.3
pipenv shell
# Start coding...

๐Ÿซ Working on School Assignment

mkdir phase3_challenge  
cd phase3_challenge
pipenv --python 3.8 install django pandas
pipenv run python --version  # 3.8.13
pipenv shell
# Work on assignment...

๐ŸคŸ Cloning Existing Repository

git clone <project-url>
cd project-name

# Check Pipfile for required Python version
cat Pipfile

# If Python 3.8 required:
pipenv --python 3.8 install

# If modern Python (3.12.3):
pipenv install

๐ŸŒŸ Benefits

โœ… Isolation

โœ… Version Control

โœ… Reproducibility


โš ๏ธ Troubleshooting

๐Ÿคฉ Common Issues

Wrong Python version in environment
โ†’ Use pipenv --python X.X install explicitly

Package installation failures
โ†’ Check package compatibility with your Python version

Environment not activating
โ†’ Ensure PIPENV_VENV_IN_PROJECT=1 is set


๐Ÿ—พ Verification Commands

# Check current Python
python --version

# Check pipenv Python
pipenv --py

# Check pyenv status
pyenv version

# List environments
pipenv --venv

๐Ÿ“ Best Practices



Last updated: {{date:YYYY-MM-DD}}

Powered by Forestry.md