diff --git a/start.bat b/start.bat index b6e4499..1eec532 100644 --- a/start.bat +++ b/start.bat @@ -39,18 +39,30 @@ if not exist "%VENV_DIR%\Scripts\python.exe" ( set "VPY=%VENV_DIR%\Scripts\python.exe" -echo [*] Installing dependencies ... -"%VPY%" -m pip install --disable-pip-version-check -q --upgrade pip >nul -"%VPY%" -m pip install --disable-pip-version-check -q -r requirements.txt -if errorlevel 1 ( - echo [!] PyPI install failed. Retrying via runflare mirror ... - "%VPY%" -m pip install --disable-pip-version-check -q -r requirements.txt ^ - -i https://mirror-pypi.runflare.com/simple/ ^ - --trusted-host mirror-pypi.runflare.com +REM -------- Skip dependency install when all required packages are already importable. +REM Pip install (even with -q) takes ~3-8s every launch; this drops it to ~0.1s +REM on warm runs. Falls through to the install path on first run, after a +REM requirements.txt change, or when any import fails for any reason. +set "DEPS_OK=0" +"%VPY%" -c "import cryptography, h2, brotli, zstandard" >nul 2>&1 +if !errorlevel!==0 set "DEPS_OK=1" + +if "!DEPS_OK!"=="1" ( + echo [*] Dependencies already installed — skipping pip install. +) else ( + echo [*] Installing dependencies ... + "%VPY%" -m pip install --disable-pip-version-check -q --upgrade pip >nul + "%VPY%" -m pip install --disable-pip-version-check -q -r requirements.txt if errorlevel 1 ( - echo [X] Could not install dependencies. - pause - exit /b 1 + echo [!] PyPI install failed. Retrying via runflare mirror ... + "%VPY%" -m pip install --disable-pip-version-check -q -r requirements.txt ^ + -i https://mirror-pypi.runflare.com/simple/ ^ + --trusted-host mirror-pypi.runflare.com + if errorlevel 1 ( + echo [X] Could not install dependencies. + pause + exit /b 1 + ) ) ) diff --git a/start.sh b/start.sh index ee37246..55092b7 100644 --- a/start.sh +++ b/start.sh @@ -34,13 +34,21 @@ fi VPY="$VENV_DIR/bin/python" -echo "[*] Installing dependencies ..." -"$VPY" -m pip install --disable-pip-version-check -q --upgrade pip >/dev/null -if ! "$VPY" -m pip install --disable-pip-version-check -q -r requirements.txt; then - echo "[!] PyPI install failed. Retrying via runflare mirror ..." - "$VPY" -m pip install --disable-pip-version-check -q -r requirements.txt \ - -i https://mirror-pypi.runflare.com/simple/ \ - --trusted-host mirror-pypi.runflare.com +# Skip dependency install when all required packages are already importable. +# Pip install (even with -q) takes ~3-8s every launch; this drops it to <0.1s +# on warm runs. Falls through to the install path on first run or if any +# import fails for any reason. +if "$VPY" -c "import cryptography, h2, brotli, zstandard" >/dev/null 2>&1; then + echo "[*] Dependencies already installed — skipping pip install." +else + echo "[*] Installing dependencies ..." + "$VPY" -m pip install --disable-pip-version-check -q --upgrade pip >/dev/null + if ! "$VPY" -m pip install --disable-pip-version-check -q -r requirements.txt; then + echo "[!] PyPI install failed. Retrying via runflare mirror ..." + "$VPY" -m pip install --disable-pip-version-check -q -r requirements.txt \ + -i https://mirror-pypi.runflare.com/simple/ \ + --trusted-host mirror-pypi.runflare.com + fi fi if [ ! -f "config.json" ]; then