Spaces:
Sleeping
Sleeping
# Setup script for Medical Image Analysis Tool | |
# This script handles dependency installation and environment setup | |
set -e # Exit on any error | |
echo "=== Medical Image Analysis Tool Setup ===" | |
echo "Starting setup process at $(date)" | |
# Function to check if a Python package is installed | |
check_python_package() { | |
python3 -c "import $1" 2>/dev/null && echo "β $1" || echo "β $1" | |
} | |
# Function to install Python packages with error handling | |
install_python_package() { | |
local package=$1 | |
echo "Installing $package..." | |
if pip install "$package" --no-cache-dir; then | |
echo "β Successfully installed $package" | |
else | |
echo "β Failed to install $package" | |
return 1 | |
fi | |
} | |
# Update pip first | |
echo "Updating pip..." | |
python3 -m pip install --upgrade pip | |
# Install core dependencies | |
echo "Installing core dependencies..." | |
install_python_package "torch>=2.5.1" | |
install_python_package "torchvision>=0.20.1" | |
install_python_package "transformers>=4.30.0" | |
install_python_package "gradio>=4.0.0" | |
install_python_package "numpy>=1.24.4" | |
install_python_package "pillow>=9.4.0" | |
# Install additional required packages | |
echo "Installing additional dependencies..." | |
install_python_package "albumentations" | |
install_python_package "einops" | |
install_python_package "opencv-python" | |
install_python_package "tqdm" | |
install_python_package "hydra-core" | |
install_python_package "omegaconf" | |
# Install SAM-2 if directory exists | |
if [ -d "segment-anything-2" ]; then | |
echo "Installing SAM-2..." | |
cd segment-anything-2 | |
pip install -e . --no-cache-dir | |
cd .. | |
echo "β SAM-2 installation completed" | |
else | |
echo "β οΈ SAM-2 directory not found - cloning repository..." | |
git clone https://github.com/facebookresearch/segment-anything-2.git | |
cd segment-anything-2 | |
pip install -e . --no-cache-dir | |
cd .. | |
echo "β SAM-2 cloned and installed" | |
fi | |
# Verify installations | |
echo "Verifying installations..." | |
echo "Python packages status:" | |
check_python_package "torch" | |
check_python_package "torchvision" | |
check_python_package "transformers" | |
check_python_package "gradio" | |
check_python_package "albumentations" | |
check_python_package "einops" | |
check_python_package "cv2" | |
check_python_package "numpy" | |
check_python_package "PIL" | |
# Test torch and torchvision compatibility | |
echo "Testing PyTorch and Torchvision compatibility..." | |
python3 -c " | |
import torch | |
import torchvision | |
print(f'PyTorch version: {torch.__version__}') | |
print(f'Torchvision version: {torchvision.__version__}') | |
print(f'CUDA available: {torch.cuda.is_available()}') | |
print('β PyTorch and Torchvision are compatible') | |
" || echo "β PyTorch/Torchvision compatibility issue" | |
# Create necessary directories | |
echo "Creating necessary directories..." | |
mkdir -p logs | |
mkdir -p uploads | |
mkdir -p outputs | |
# Set permissions | |
chmod +x app.py | |
echo "=== Setup completed at $(date) ===" | |
echo "You can now run the application with: python3 app.py" | |
# Optional: Run a quick test | |
echo "Running quick test..." | |
python3 -c " | |
import sys | |
sys.path.append('.') | |
try: | |
from app import check_dependencies | |
deps = check_dependencies() | |
print('Dependency check results:') | |
for dep, status in deps.items(): | |
print(f' {dep}: {\"β \" if status else \"β\"}') | |
except Exception as e: | |
print(f'Test failed: {e}') | |
" |