mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
install: фолбэк pip --target=lib, если в python3 нет venv
На многих сборках 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 стал опциональным (как и был, но без обязательного завершения цепочки).
This commit is contained in:
22
run.sh
22
run.sh
@@ -1,8 +1,24 @@
|
||||
#!/bin/sh
|
||||
# Запуск через Waitress (рекомендуется на роутере)
|
||||
cd "$(dirname "$0")" || exit 1
|
||||
# Запуск через 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
|
||||
exec /opt/bin/python3 -m waitress --listen="0.0.0.0:${PORT:-2001}" app:app
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user