diff --git a/bin/setup-venv.sh b/bin/setup-venv.sh new file mode 100755 index 0000000..1674e22 --- /dev/null +++ b/bin/setup-venv.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# ================================================================ +# PICCREATE - Python Virtual Environment einrichten +# ================================================================ + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SCRIPT_DIR/setenv.sh" + +if [ ! -d "$PICCREATE/.venv" ]; then + echo "Initialisiere Python virtual environment..." + python3 -m venv "$PICCREATE/.venv" --upgrade-deps || { + rm -rf "$PICCREATE/.venv" + echo "Fehlgeschlagen. Unter Ubuntu/Debian: sudo apt install python3-venv" + exit 1 + } + echo "Erfolgreich." + + source "$PICCREATE/.venv/bin/activate" + echo "Installiere erforderliche Python Packages..." + pip install -r "$PICCREATE/requirements.txt" -q || exit 1 + echo "Erfolgreich." + deactivate +else + echo "Erforderliche Python Packages bereits installiert!" +fi + +# Browser für webscan +# Arch: Playwright unterstützt Arch nicht offiziell -> Chromium der Distribution +if grep -qs '^ID=arch\|^ID_LIKE=.*arch' /etc/os-release; then + if [ -x /usr/bin/chromium ]; then + echo "Browser: /usr/bin/chromium" + echo "Für webscan setzen (z.B. in ~/.bashrc):" + echo " export PICCREATE_BROWSER=/usr/bin/chromium" + else + echo "Chromium fehlt. Bitte installieren:" + echo " sudo pacman -S chromium" + echo " export PICCREATE_BROWSER=/usr/bin/chromium" + fi +elif [ -n "$(ls -d ~/.cache/ms-playwright/chromium* 2>/dev/null)" ]; then + echo "Playwright Browser bereits installiert!" +else + echo "Installiere Playwright Browser..." + "$PICCREATE/.venv/bin/playwright" install chromium || exit 1 + echo "Erfolgreich." + echo "Falls der Browser nicht startet (Ubuntu/Debian), Systembibliotheken installieren:" + echo " sudo $PICCREATE/.venv/bin/playwright install-deps chromium" +fi diff --git a/doc/README.md b/doc/README.md index e6c2846..0ac1f63 100644 --- a/doc/README.md +++ b/doc/README.md @@ -151,7 +151,16 @@ einem Browser ohne Fenster und speichert den sichtbaren Bereich als Bild `.jpg`. Die Größe kommt aus der Sektion `[webscan]` der Konfiguration (in `cfg/webscan.cfg`: 800×500). -Einmalig einrichten (Python-Umgebung im Projektverzeichnis): +Einmalig einrichten mit `bin/setup-venv.sh`: legt die Python-Umgebung `.venv` +im Projektverzeichnis an, installiert `requirements.txt` und kümmert sich um +den Browser (Ubuntu: Playwright-Chromium, Arch: Hinweis auf das Chromium der +Distribution). Ist `.venv` schon vorhanden, wird nichts neu installiert. + +```sh +./setup-venv.sh +``` + +Von Hand geht es so: ```sh python3 -m venv .venv # Ubuntu: vorher sudo apt install python3-venv