Spaces:
Running
Running
Download RodSizer_DEBUG_Windows.bat from Caesium135/RodSizer_web: direct link, hf CLI and curl.
- Browser
- Download file 7.25 kB
-
https://huggingface.co/spaces/Caesium135/RodSizer_web/resolve/main/RodSizer_DEBUG_Windows.bat
- Command line
-
hf download hf://spaces/Caesium135/RodSizer_web/RodSizer_DEBUG_Windows.bat
-
curl -L -o RodSizer_DEBUG_Windows.bat https://huggingface.co/spaces/Caesium135/RodSizer_web/resolve/main/RodSizer_DEBUG_Windows.bat
7.25 kB
| @echo off | |
| cd /d "%~dp0" | |
| setlocal enabledelayedexpansion | |
| set "PROJECT_DIR=%CD%" | |
| set "BACKEND_DIR=%PROJECT_DIR%\backend" | |
| set "VENV_DIR=%PROJECT_DIR%\.venv" | |
| set "VENV_PYTHON=%VENV_DIR%\Scripts\python.exe" | |
| set "APP_URL=http://127.0.0.1:8501" | |
| set "TEMP_CHECK=%PROJECT_DIR%\_check_rodsizer_imports.py" | |
| set "TEMP_REQ=%PROJECT_DIR%\_requirements_windows_debug.txt" | |
| set "FRESH_VENV=0" | |
| set "REPAIR_ATTEMPTED=0" | |
| echo ================================================== | |
| echo RodSizer - DEBUG & REPAIR | |
| echo ================================================== | |
| echo. | |
| set "PY_EXE=" | |
| REM --- 1. Find Python --- | |
| python --version >nul 2>&1 | |
| if %errorlevel% equ 0 set "PY_EXE=python" | |
| if defined PY_EXE goto FOUND_PYTHON | |
| py --version >nul 2>&1 | |
| if !errorlevel! equ 0 set "PY_EXE=py" | |
| if defined PY_EXE goto FOUND_PYTHON | |
| REM Auto-Detect | |
| if exist "C:\Python39\python.exe" set "PY_EXE=C:\Python39\python.exe" & goto FOUND_PYTHON | |
| if exist "C:\Python310\python.exe" set "PY_EXE=C:\Python310\python.exe" & goto FOUND_PYTHON | |
| if exist "C:\Python311\python.exe" set "PY_EXE=C:\Python311\python.exe" & goto FOUND_PYTHON | |
| if exist "C:\Program Files\Python39\python.exe" set "PY_EXE=C:\Program Files\Python39\python.exe" & goto FOUND_PYTHON | |
| if exist "C:\Program Files\Python310\python.exe" set "PY_EXE=C:\Program Files\Python310\python.exe" & goto FOUND_PYTHON | |
| if exist "C:\Program Files\Python311\python.exe" set "PY_EXE=C:\Program Files\Python311\python.exe" & goto FOUND_PYTHON | |
| :ASK_USER | |
| echo. | |
| echo [ERROR] Could not find Python automatically. | |
| echo. | |
| echo Please locate your 'python.exe' file. | |
| echo IMPORTANT: Drag the FILE, not a shortcut. | |
| set /p "PY_EXE=Drag and Drop python.exe here: " | |
| set "PY_EXE=!PY_EXE:"=!" | |
| echo "!PY_EXE!" | findstr /i ".lnk" >nul | |
| if %errorlevel% equ 0 ( | |
| echo. | |
| echo [ERROR] You provided a Shortcut (.lnk). | |
| echo Please use the real python.exe. | |
| goto ASK_USER | |
| ) | |
| :FOUND_PYTHON | |
| echo. | |
| echo [INFO] Using Python: "!PY_EXE!" | |
| REM Verify selected Python | |
| "!PY_EXE!" --version >nul 2>&1 | |
| if errorlevel 1 ( | |
| echo. | |
| echo [CRITICAL ERROR] Selected python path is invalid. | |
| pause | |
| exit /b 1 | |
| ) | |
| if not exist "%BACKEND_DIR%\requirements.txt" ( | |
| echo. | |
| echo [CRITICAL ERROR] Missing backend\requirements.txt | |
| pause | |
| exit /b 1 | |
| ) | |
| if not exist "%BACKEND_DIR%\main.py" ( | |
| echo. | |
| echo [CRITICAL ERROR] Missing backend\main.py | |
| pause | |
| exit /b 1 | |
| ) | |
| REM --- 2. Setup Env --- | |
| if not exist "%VENV_PYTHON%" ( | |
| echo [INFO] Creating venv... | |
| "!PY_EXE!" -m venv "%VENV_DIR%" | |
| if errorlevel 1 ( | |
| echo. | |
| echo [CRITICAL ERROR] Failed to create virtual environment. | |
| pause | |
| exit /b 1 | |
| ) | |
| set "FRESH_VENV=1" | |
| ) | |
| if "%FRESH_VENV%"=="1" ( | |
| echo [INFO] Installing baseline dependencies... | |
| "%VENV_PYTHON%" -m pip install --upgrade pip | |
| if errorlevel 1 ( | |
| echo. | |
| echo [CRITICAL ERROR] Failed to upgrade pip. | |
| pause | |
| exit /b 1 | |
| ) | |
| "%VENV_PYTHON%" -m pip install -r "%BACKEND_DIR%\requirements.txt" | |
| if errorlevel 1 ( | |
| echo. | |
| echo [WARN] Baseline install reported an error. | |
| echo [WARN] Continuing into repair checks... | |
| ) | |
| ) | |
| :CHECK_LIBS | |
| echo. | |
| echo [TEST] Checking libraries... | |
| REM Create a temporary python script to avoid batch syntax errors | |
| echo try: > "%TEMP_CHECK%" | |
| echo import cv2 >> "%TEMP_CHECK%" | |
| echo print(' - OpenCV: OK') >> "%TEMP_CHECK%" | |
| echo import numpy >> "%TEMP_CHECK%" | |
| echo print(' - NumPy: OK') >> "%TEMP_CHECK%" | |
| echo import fastapi >> "%TEMP_CHECK%" | |
| echo print(' - FastAPI: OK') >> "%TEMP_CHECK%" | |
| echo import uvicorn >> "%TEMP_CHECK%" | |
| echo print(' - Uvicorn: OK') >> "%TEMP_CHECK%" | |
| echo import pandas >> "%TEMP_CHECK%" | |
| echo print(' - Pandas: OK') >> "%TEMP_CHECK%" | |
| echo import ncempy.io >> "%TEMP_CHECK%" | |
| echo print(' - ncempy: OK') >> "%TEMP_CHECK%" | |
| echo import openpyxl >> "%TEMP_CHECK%" | |
| echo print(' - openpyxl: OK') >> "%TEMP_CHECK%" | |
| echo import multipart >> "%TEMP_CHECK%" | |
| echo print(' - python-multipart: OK') >> "%TEMP_CHECK%" | |
| echo import tifffile >> "%TEMP_CHECK%" | |
| echo print(' - tifffile: OK') >> "%TEMP_CHECK%" | |
| echo import h5py >> "%TEMP_CHECK%" | |
| echo print(' - h5py: OK') >> "%TEMP_CHECK%" | |
| echo from skimage import measure >> "%TEMP_CHECK%" | |
| echo print(' - scikit-image: OK') >> "%TEMP_CHECK%" | |
| echo from scipy import ndimage >> "%TEMP_CHECK%" | |
| echo print(' - SciPy: OK') >> "%TEMP_CHECK%" | |
| echo from stardist.models import StarDist2D >> "%TEMP_CHECK%" | |
| echo print(' - StarDist: OK') >> "%TEMP_CHECK%" | |
| echo from csbdeep.utils import normalize >> "%TEMP_CHECK%" | |
| echo print(' - csbdeep: OK') >> "%TEMP_CHECK%" | |
| echo except Exception as e: >> "%TEMP_CHECK%" | |
| echo print('\n [ERROR] ' + str(e)) >> "%TEMP_CHECK%" | |
| echo raise SystemExit(1) >> "%TEMP_CHECK%" | |
| REM Run the check | |
| "%VENV_PYTHON%" "%TEMP_CHECK%" | |
| set BUILD_STATUS=%errorlevel% | |
| REM Clean up | |
| if exist "%TEMP_CHECK%" del "%TEMP_CHECK%" | |
| if %BUILD_STATUS% neq 0 ( | |
| if "%REPAIR_ATTEMPTED%"=="1" ( | |
| echo. | |
| echo [CRITICAL ERROR] Repair was attempted, but the environment is still failing checks. | |
| echo Review the error shown above for the package that still cannot import. | |
| pause | |
| exit /b 1 | |
| ) | |
| echo. | |
| echo [CRITICAL ERROR] Libraries failed to load. | |
| echo. | |
| echo ================================================== | |
| echo ATTEMPTING REPAIR | |
| echo ================================================== | |
| echo We will switch to Standard OpenCV to fix DLL errors. | |
| echo. | |
| pause | |
| echo [REPAIR] upgrading pip... | |
| "%VENV_PYTHON%" -m pip install --upgrade pip | |
| if errorlevel 1 ( | |
| echo. | |
| echo [CRITICAL ERROR] Failed to upgrade pip. | |
| pause | |
| exit /b 1 | |
| ) | |
| echo [REPAIR] Swapping OpenCV versions... | |
| "%VENV_PYTHON%" -m pip uninstall -y opencv-python-headless opencv-python | |
| if exist "%TEMP_REQ%" del "%TEMP_REQ%" | |
| findstr /V /I "opencv-python-headless" "%BACKEND_DIR%\requirements.txt" > "%TEMP_REQ%" | |
| if errorlevel 1 ( | |
| echo. | |
| echo [CRITICAL ERROR] Failed to build a temporary requirements list. | |
| pause | |
| exit /b 1 | |
| ) | |
| echo [REPAIR] Installing non-OpenCV dependencies... | |
| "%VENV_PYTHON%" -m pip install -r "%TEMP_REQ%" | |
| if errorlevel 1 ( | |
| if exist "%TEMP_REQ%" del "%TEMP_REQ%" | |
| echo. | |
| echo [CRITICAL ERROR] Failed while reinstalling dependencies. | |
| pause | |
| exit /b 1 | |
| ) | |
| echo [REPAIR] Installing standard OpenCV... | |
| "%VENV_PYTHON%" -m pip install opencv-python | |
| if errorlevel 1 ( | |
| if exist "%TEMP_REQ%" del "%TEMP_REQ%" | |
| echo. | |
| echo [CRITICAL ERROR] Failed to install standard OpenCV. | |
| pause | |
| exit /b 1 | |
| ) | |
| if exist "%TEMP_REQ%" del "%TEMP_REQ%" | |
| set "REPAIR_ATTEMPTED=1" | |
| echo. | |
| echo [REPAIR COMPLETE] | |
| echo Checking again... | |
| echo. | |
| goto CHECK_LIBS | |
| ) else ( | |
| echo [SUCCESS] Libraries loaded correctly. | |
| ) | |
| REM --- 3. Run Server --- | |
| echo. | |
| echo [INFO] Starting Server... | |
| echo [INSTRUCTION] Open browser to: %APP_URL% | |
| echo. | |
| cd /d "%BACKEND_DIR%" | |
| "%VENV_PYTHON%" -m uvicorn main:app --reload --host 127.0.0.1 --port 8501 | |
| pause | |