feat: auto-run setup when virtual environment is missing

- Update run_gemini.sh to automatically run setup.sh if venv doesn't exist
- Update run_gemini.bat to automatically run setup.bat if venv doesn't exist
- Remove fallback to system Python - always use venv for consistency
- Provide clear error messages if setup fails

This ensures users don't see "ModuleNotFoundError" - instead the server
will automatically set up dependencies on first run.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Fahad
2025-06-09 20:52:47 +04:00
parent eafe29ddac
commit ae64ede51f
2 changed files with 47 additions and 25 deletions

View File

@@ -8,20 +8,27 @@ REM Change to script directory to ensure proper working directory
cd /d "%SCRIPT_DIR%" cd /d "%SCRIPT_DIR%"
REM Check if virtual environment exists REM Check if virtual environment exists
if exist "%SCRIPT_DIR%venv\Scripts\activate.bat" ( if not exist "%SCRIPT_DIR%venv\" (
REM Activate the virtual environment echo Virtual environment not found. Running setup... >&2
call "%SCRIPT_DIR%venv\Scripts\activate.bat"
python "%SCRIPT_DIR%server.py" REM Check if setup.bat exists
) else ( if exist "%SCRIPT_DIR%setup.bat" (
REM Try to use python directly if no venv REM Run setup script
echo Warning: Virtual environment not found at %SCRIPT_DIR%venv >&2 call "%SCRIPT_DIR%setup.bat" >&2
echo Attempting to run with system Python... >&2
python "%SCRIPT_DIR%server.py" REM Check if setup was successful
if errorlevel 1 ( if errorlevel 1 (
echo Error: Failed to run server. Please ensure Python is installed and dependencies are available. >&2 echo Setup failed. Please run setup.bat manually to see the error. >&2
echo Run: python -m venv venv >&2 exit /b 1
echo Then: venv\Scripts\activate >&2 )
echo Then: pip install -r requirements.txt >&2 ) else (
echo Error: setup.bat not found. Please ensure you have the complete repository. >&2
exit /b 1 exit /b 1
) )
) )
REM Activate virtual environment
call "%SCRIPT_DIR%venv\Scripts\activate.bat"
REM Run the server
python "%SCRIPT_DIR%server.py"

View File

@@ -4,19 +4,34 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Check if virtual environment exists # Check if virtual environment exists
if [ -d "$SCRIPT_DIR/venv" ]; then if [ ! -d "$SCRIPT_DIR/venv" ]; then
# Activate virtual environment echo "Virtual environment not found. Running setup..." >&2
source "$SCRIPT_DIR/venv/bin/activate"
PYTHON_EXEC="python" # Check if setup.sh exists and is executable
else if [ -f "$SCRIPT_DIR/setup.sh" ]; then
# Fallback to system Python if venv doesn't exist if [ ! -x "$SCRIPT_DIR/setup.sh" ]; then
echo "Warning: Virtual environment not found at $SCRIPT_DIR/venv" >&2 chmod +x "$SCRIPT_DIR/setup.sh"
echo "Using system Python. Make sure dependencies are installed." >&2 fi
PYTHON_EXEC="python3"
# Run setup script
"$SCRIPT_DIR/setup.sh" >&2
# Check if setup was successful
if [ $? -ne 0 ]; then
echo "Setup failed. Please run setup.sh manually to see the error." >&2
exit 1
fi
else
echo "Error: setup.sh not found. Please ensure you have the complete repository." >&2
exit 1
fi
fi fi
# Activate virtual environment
source "$SCRIPT_DIR/venv/bin/activate"
# Change to script directory to ensure proper working directory # Change to script directory to ensure proper working directory
cd "$SCRIPT_DIR" cd "$SCRIPT_DIR"
# Run the server # Run the server
exec "$PYTHON_EXEC" "$SCRIPT_DIR/server.py" exec python "$SCRIPT_DIR/server.py"