🐍 Setting Up Python Workspace
Introduction
A well-organized Python workspace is essential for productive development. This guide covers setting up virtual environments, package management with pip, and project structure best practices. You'll learn how to create isolated environments, manage dependencies, and organize your Python projects professionally.
1. Install Python
macOS (using Homebrew)
# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Python
brew install python
Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip python3-venv
Windows
Download from python.org or use the Microsoft Store.
Verify Installation
python3 --version
pip3 --version
2. Set Up Virtual Environments
Virtual environments isolate your project dependencies and prevent conflicts between different projects.
Create a Virtual Environment
# Navigate to your project directory
cd ~/my-python-project
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate
# On Windows:
# venv\Scripts\activate
Deactivate Virtual Environment
deactivate
3. Package Management with pip
Upgrade pip
pip install --upgrade pip
Install Packages
# Install a single package
pip install requests
# Install multiple packages
pip install requests numpy pandas matplotlib
# Install from requirements.txt
pip install -r requirements.txt
Create requirements.txt
# Generate requirements file
pip freeze > requirements.txt
# Or manually create it
echo "requests==2.31.0" > requirements.txt
echo "numpy==1.24.3" >> requirements.txt
echo "pandas==2.0.3" >> requirements.txt
4. Project Structure Best Practices
Create a well-organized project structure:
my-python-project/
├── venv/ # Virtual environment (don't commit)
├── src/ # Source code
│ ├── __init__.py
│ ├── main.py
│ └── utils/
│ ├── __init__.py
│ └── helpers.py
├── tests/ # Test files
│ ├── __init__.py
│ └── test_main.py
├── data/ # Data files
├── docs/ # Documentation
├── .gitignore # Git ignore file
├── requirements.txt # Dependencies
├── README.md # Project documentation
└── setup.py # Package setup (optional)