Initialer Push, Grundsätzlich funktioniert das Programm
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
# Installiert Notarius in eine lokale virtuelle Umgebung (.venv) und richtet
|
||||
# einen Menü-Eintrag im Anwendungsmenü ein. Setzt voraus, dass ffmpeg, pactl
|
||||
# und eine funktionierende CUDA-Umgebung bereits auf dem System vorhanden sind
|
||||
# (siehe README.md).
|
||||
set -euo pipefail
|
||||
|
||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
VENV_DIR="$PROJECT_DIR/.venv"
|
||||
|
||||
# whisperx zieht (über faster-whisper) eine exakt gepinnte ctranslate2-Version,
|
||||
# für die es auf ganz neuen Python-Versionen (3.13/3.14 - z.B. Fedoras aktueller
|
||||
# Standard-python3) noch keine Wheels gibt. Deshalb wird hier gezielt nach einer
|
||||
# bekannt kompatiblen Version gesucht, statt blind "python3" zu verwenden.
|
||||
find_compatible_python() {
|
||||
if [[ -n "${PYTHON_BIN:-}" ]]; then
|
||||
echo "$PYTHON_BIN"
|
||||
return
|
||||
fi
|
||||
for candidate in python3.12 python3.11 python3.10; do
|
||||
if command -v "$candidate" &>/dev/null; then
|
||||
echo "$candidate"
|
||||
return
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# Prüft, ob eine bestehende .venv mit einer der bekannt kompatiblen Versionen läuft.
|
||||
venv_is_compatible() {
|
||||
local venv_python="$VENV_DIR/bin/python3"
|
||||
[[ -x "$venv_python" ]] || return 1
|
||||
local version
|
||||
version="$("$venv_python" -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
|
||||
[[ "$version" == "3.10" || "$version" == "3.11" || "$version" == "3.12" ]]
|
||||
}
|
||||
|
||||
if [[ -d "$VENV_DIR" ]] && venv_is_compatible; then
|
||||
echo "Verwende bestehende virtuelle Umgebung: $VENV_DIR"
|
||||
else
|
||||
if [[ -d "$VENV_DIR" ]]; then
|
||||
echo "Bestehende .venv nutzt eine mit whisperx inkompatible Python-Version, wird neu angelegt..."
|
||||
rm -rf "$VENV_DIR"
|
||||
fi
|
||||
|
||||
if ! PYTHON_BIN="$(find_compatible_python)"; then
|
||||
cat >&2 <<'EOF'
|
||||
Kein kompatibler Python-Interpreter (3.10/3.11/3.12) gefunden.
|
||||
whisperx benötigt (über faster-whisper) ctranslate2 in einer Version, für die es
|
||||
auf neueren Python-Versionen (3.13/3.14) noch keine Wheels gibt.
|
||||
|
||||
Bitte auf Fedora nachinstallieren, z.B.:
|
||||
sudo dnf install python3.12
|
||||
|
||||
Danach install.sh erneut ausführen, oder gezielt vorgeben mit:
|
||||
PYTHON_BIN=python3.12 ./install.sh
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Erstelle virtuelle Umgebung mit $PYTHON_BIN ($("$PYTHON_BIN" --version)): $VENV_DIR"
|
||||
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
||||
fi
|
||||
|
||||
echo "Installiere Notarius und Python-Abhängigkeiten..."
|
||||
"$VENV_DIR/bin/pip" install --upgrade pip --quiet
|
||||
"$VENV_DIR/bin/pip" install -e "$PROJECT_DIR"
|
||||
|
||||
echo "Richte Menü-Eintrag ein..."
|
||||
"$VENV_DIR/bin/notarius-install-launcher"
|
||||
|
||||
cat <<EOF
|
||||
|
||||
Installation abgeschlossen.
|
||||
|
||||
Notarius ist jetzt im Anwendungsmenü zu finden, oder direkt startbar mit:
|
||||
$VENV_DIR/bin/notarius
|
||||
|
||||
Autostart, API-Key und Modellwahl lassen sich im Tab "Settings" konfigurieren.
|
||||
Zum Entfernen: ./uninstall.sh
|
||||
EOF
|
||||
Reference in New Issue
Block a user