mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
На многих сборках Entware (включая aarch64-k3.10) пакет python3-venv недоступен и `python3 -m venv` падает с `No module named venv`. Делаем установку без venv: - если venv создаётся — используем его (как раньше) - иначе ставим зависимости в $INST/lib через `pip install --target=lib` - run.sh и init-скрипт автоопределяют режим (PYTHONPATH=lib для второго) Также: opkg install python3-venv стал опциональным (как и был, но без обязательного завершения цепочки).
25 lines
842 B
Bash
25 lines
842 B
Bash
#!/bin/sh
|
||
# Запуск через Waitress (рекомендуется на роутере). Поддерживает оба режима:
|
||
# - venv: $DIR/venv/bin/python3
|
||
# - lib/: /opt/bin/python3 + PYTHONPATH=$DIR/lib (если venv недоступен)
|
||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
cd "$DIR" || exit 1
|
||
set -a
|
||
[ -f .env ] && . ./.env
|
||
set +a
|
||
export PYTHONUNBUFFERED=1
|
||
|
||
if [ -x "$DIR/venv/bin/python3" ]; then
|
||
PYBIN="$DIR/venv/bin/python3"
|
||
elif [ -d "$DIR/lib" ] && [ -x /opt/bin/python3 ]; then
|
||
PYBIN="/opt/bin/python3"
|
||
export PYTHONPATH="$DIR/lib:${PYTHONPATH:-}"
|
||
elif command -v python3 >/dev/null 2>&1; then
|
||
PYBIN="$(command -v python3)"
|
||
else
|
||
echo "Нет python3. Установите: opkg install python3 python3-pip" >&2
|
||
exit 1
|
||
fi
|
||
|
||
exec "$PYBIN" -m waitress --listen="0.0.0.0:${PORT:-2001}" app:app
|