Installation
This content is pulled directly from the project README to stay in sync.
FUSION offers multiple installation methods. Choose the one that best fits your needs:
Automatic Installation (Recommended)
For the easiest setup experience, use our automated installation script:
# Clone the repository
git clone git@github.com:SDNNetSim/FUSION.git
cd FUSION
# Create and activate a Python 3.11 virtual environment
python3.11 -m venv venv
source venv/bin/activate
# Run automated installation
./install.sh
The script automatically:
Detects your platform (macOS, Linux, Windows)
Handles PyTorch Geometric compilation issues
Installs all dependencies in the correct order
Sets up development tools
Installs and configures pre-commit hooks
Verifies the installation
Package Installation
For a more controlled installation using Python packaging:
# Clone and create venv (same as above)
git clone git@github.com:SDNNetSim/FUSION.git
cd FUSION
python3.11 -m venv venv
source venv/bin/activate
# Install core package
pip install -e .
# Install optional components as needed:
pip install -e .[dev] # Development tools (ruff, mypy, pytest, pre-commit)
pip install -e .[rl] # Reinforcement learning (stable-baselines3)
pip install -e .[all] # Everything except PyTorch Geometric
# Install pre-commit hooks (for development)
pre-commit install
pre-commit install --hook-type commit-msg
# PyTorch Geometric requires manual installation:
# macOS (Apple Silicon):
MACOSX_DEPLOYMENT_TARGET=11.0 pip install --no-build-isolation torch-scatter torch-sparse torch-cluster torch-spline-conv -f https://data.pyg.org/whl/torch-2.2.2+cpu.html
# macOS (Intel):
MACOSX_DEPLOYMENT_TARGET=10.15 pip install --no-build-isolation torch-scatter torch-sparse torch-cluster torch-spline-conv -f https://data.pyg.org/whl/torch-2.2.2+cpu.html
# Linux/Windows:
pip install torch-scatter torch-sparse torch-cluster torch-spline-conv -f https://data.pyg.org/whl/torch-2.2.2+cpu.html
# Finally install PyTorch Geometric:
pip install torch-geometric==2.6.1
Legacy Requirements Installation
If you prefer using requirements files:
# Core dependencies
pip install torch==2.2.2
pip install -r requirements.txt
pip install -r requirements-dev.txt