From 486f166462c8886ad73be229b0a55c63de82f450 Mon Sep 17 00:00:00 2001 From: Developer Date: Sun, 18 Jan 2026 12:19:31 +0000 Subject: [PATCH] Add automated setup and run scripts for Virtual Environment support - setup.sh / setup.bat: Create venv, install dependencies - run.sh / run.bat: Activate venv and start main.py - .gitignore: Exclude venv, cache, IDE files - README.md: Updated installation guide with PEP 668 solution --- .gitignore | 32 ++++++++++++++ README.md | 119 +++++++++++++++++++++++++++++++++++++++++++++-------- run.bat | 31 ++++++++++++++ run.sh | 30 ++++++++++++++ setup.bat | 87 +++++++++++++++++++++++++++++++++++++++ setup.sh | 98 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 379 insertions(+), 18 deletions(-) create mode 100644 .gitignore create mode 100644 run.bat create mode 100755 run.sh create mode 100644 setup.bat create mode 100755 setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2819fd6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Virtual Environment +venv/ +env/ +.venv/ + +# Python Cache +__pycache__/ +*.py[cod] +*$py.class +*.pyo + +# IDE +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Output files +output/*.cor +output/*.csv +output/*.txt +output/*.dxf + +# Temporary files +*.tmp +*.temp +*.bak diff --git a/README.md b/README.md index dd9dda5..b5d2ce3 100644 --- a/README.md +++ b/README.md @@ -52,36 +52,119 @@ Ein vollständiges Python-Programm mit grafischer Benutzeroberfläche (GUI) für - Export der transformierten JXL-Datei - Validierung der Eingaben mit Warnungen bei problematischen Werten -## Installation +## Installation und Start ### Voraussetzungen - Python 3.8 oder höher -- PyQt5 -- NumPy -- SciPy -- lxml +- PyQt5, NumPy, SciPy, lxml -### Installation der Abhängigkeiten +### Wichtiger Hinweis: Externally-Managed-Environment (PEP 668) -**Option 1: Mit requirements.txt (empfohlen)** -```bash -cd /home/ubuntu/trimble_geodesy -pip install -r requirements.txt +Moderne Linux-Distributionen (Ubuntu 23.04+, Debian 12+, Fedora 38+) verwenden ein "externally-managed-environment". Das bedeutet, dass `pip install` ohne Virtual Environment folgenden Fehler erzeugt: + +``` +error: externally-managed-environment +× This environment is externally managed ``` -**Option 2: Manuelle Installation** +**Lösung:** Verwenden Sie ein Virtual Environment (empfohlen) oder die automatischen Setup-Scripts. + +--- + +### Methode 1: Automatische Installation (empfohlen) + +#### Linux / macOS + ```bash -pip install PyQt5 numpy scipy lxml +cd /home/ubuntu/trimble_geodesy + +# 1. Setup ausführen (einmalig) +./setup.sh + +# 2. Programm starten +./run.sh +``` + +Falls `./setup.sh` nicht ausführbar ist: +```bash +chmod +x setup.sh run.sh +./setup.sh +``` + +#### Windows + +```cmd +cd C:\Pfad\zum\trimble_geodesy + +REM 1. Setup ausführen (einmalig) +setup.bat + +REM 2. Programm starten +run.bat +``` + +--- + +### Methode 2: Manuelle Installation mit Virtual Environment + +#### Linux / macOS + +```bash +cd /home/ubuntu/trimble_geodesy + +# Virtual Environment erstellen +python3 -m venv venv + +# Virtual Environment aktivieren +source venv/bin/activate + +# Abhängigkeiten installieren +pip install -r requirements.txt + +# Programm starten +python3 main.py +``` + +#### Windows + +```cmd +cd C:\Pfad\zum\trimble_geodesy + +REM Virtual Environment erstellen +python -m venv venv + +REM Virtual Environment aktivieren +venv\Scripts\activate.bat + +REM Abhängigkeiten installieren +pip install -r requirements.txt + +REM Programm starten +python main.py +``` + +--- + +### Fehlerbehebung + +**Fehler: `python3-venv` nicht installiert (Linux)** +```bash +sudo apt install python3-venv # Ubuntu/Debian +sudo dnf install python3-venv # Fedora +``` + +**Fehler: Permission denied bei setup.sh** +```bash +chmod +x setup.sh run.sh +``` + +**Fehler: Qt-Plattform nicht gefunden** +```bash +sudo apt install libxcb-xinerama0 libxcb-cursor0 # Ubuntu/Debian ``` ## Verwendung -### Programm starten -```bash -cd /home/ubuntu/trimble_geodesy -python3 main.py -``` - ### Workflow 1. **JXL-Analyse Tab**: JXL-Datei laden und analysieren 2. **COR-Generator Tab**: Koordinaten generieren und exportieren diff --git a/run.bat b/run.bat new file mode 100644 index 0000000..7ca5ec8 --- /dev/null +++ b/run.bat @@ -0,0 +1,31 @@ +@echo off +REM +REM Trimble Geodesy Tool - Run Script (Windows) +REM Aktiviert das Virtual Environment und startet das Programm +REM + +REM Wechsle ins Script-Verzeichnis +cd /d "%~dp0" + +REM Pruefe ob Virtual Environment existiert +if not exist venv ( + echo X Fehler: Virtual Environment nicht gefunden. + echo. + echo Bitte zuerst setup.bat ausfuehren + echo. + pause + exit /b 1 +) + +REM Aktiviere Virtual Environment +call venv\Scripts\activate.bat + +if %ERRORLEVEL% neq 0 ( + echo X Fehler beim Aktivieren des Virtual Environments + pause + exit /b 1 +) + +REM Starte das Programm +echo Starte Trimble Geodesy Tool... +python main.py diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..80c9556 --- /dev/null +++ b/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Trimble Geodesy Tool - Run Script (Linux/macOS) +# Aktiviert das Virtual Environment und startet das Programm +# + +# Wechsle ins Script-Verzeichnis +cd "$(dirname "$0")" + +# Prüfe ob Virtual Environment existiert +if [ ! -d "venv" ]; then + echo "❌ Fehler: Virtual Environment nicht gefunden." + echo "" + echo " Bitte zuerst setup.sh ausführen:" + echo " ./setup.sh" + echo "" + exit 1 +fi + +# Aktiviere Virtual Environment +source venv/bin/activate + +if [ $? -ne 0 ]; then + echo "❌ Fehler beim Aktivieren des Virtual Environments" + exit 1 +fi + +# Starte das Programm +echo "Starte Trimble Geodesy Tool..." +python3 main.py diff --git a/setup.bat b/setup.bat new file mode 100644 index 0000000..97cc355 --- /dev/null +++ b/setup.bat @@ -0,0 +1,87 @@ +@echo off +REM +REM Trimble Geodesy Tool - Setup Script (Windows) +REM Erstellt ein Virtual Environment und installiert alle Abhängigkeiten +REM + +echo ======================================== +echo Trimble Geodesy Tool - Setup +echo ======================================== +echo. + +REM Wechsle ins Script-Verzeichnis +cd /d "%~dp0" + +REM Pruefe ob Python installiert ist +python --version >nul 2>&1 +if %ERRORLEVEL% neq 0 ( + echo X Fehler: Python ist nicht installiert. + echo Bitte installieren Sie Python von https://python.org + echo Wichtig: Bei der Installation "Add Python to PATH" aktivieren! + pause + exit /b 1 +) + +echo [OK] Python gefunden + +REM Erstelle Virtual Environment +echo. +echo -^> Erstelle Virtual Environment... + +if exist venv ( + echo Virtual Environment existiert bereits. + set /p REPLY=" Neu erstellen? (j/n): " + if /i "%REPLY%"=="j" ( + rmdir /s /q venv + python -m venv venv + echo [OK] Virtual Environment neu erstellt + ) +) else ( + python -m venv venv + echo [OK] Virtual Environment erstellt +) + +REM Aktiviere Virtual Environment +echo. +echo -^> Aktiviere Virtual Environment... +call venv\Scripts\activate.bat + +if %ERRORLEVEL% neq 0 ( + echo X Fehler beim Aktivieren des Virtual Environments + pause + exit /b 1 +) + +echo [OK] Virtual Environment aktiviert + +REM Upgrade pip +echo. +echo -^> Aktualisiere pip... +pip install --upgrade pip --quiet +echo [OK] pip aktualisiert + +REM Installiere Abhaengigkeiten +echo. +echo -^> Installiere Abhaengigkeiten aus requirements.txt... +pip install -r requirements.txt + +if %ERRORLEVEL% neq 0 ( + echo. + echo X Fehler beim Installieren der Abhaengigkeiten + pause + exit /b 1 +) + +echo. +echo ======================================== +echo [OK] Setup erfolgreich abgeschlossen! +echo ======================================== +echo. +echo Zum Starten des Programms: +echo run.bat +echo. +echo Oder manuell: +echo venv\Scripts\activate.bat +echo python main.py +echo. +pause diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..42d4d19 --- /dev/null +++ b/setup.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# +# Trimble Geodesy Tool - Setup Script (Linux/macOS) +# Erstellt ein Virtual Environment und installiert alle Abhängigkeiten +# + +echo "========================================" +echo " Trimble Geodesy Tool - Setup" +echo "========================================" +echo "" + +# Wechsle ins Script-Verzeichnis +cd "$(dirname "$0")" + +# Prüfe ob Python3 installiert ist +if ! command -v python3 &> /dev/null; then + echo "❌ Fehler: Python3 ist nicht installiert." + echo " Bitte installieren Sie Python3:" + echo " Ubuntu/Debian: sudo apt install python3" + echo " Fedora: sudo dnf install python3" + exit 1 +fi + +echo "✓ Python3 gefunden: $(python3 --version)" + +# Prüfe ob python3-venv installiert ist +if ! python3 -c "import venv" &> /dev/null; then + echo "" + echo "❌ Fehler: python3-venv ist nicht installiert." + echo "" + echo " Bitte installieren Sie python3-venv:" + echo " Ubuntu/Debian: sudo apt install python3-venv" + echo " Fedora: sudo dnf install python3-venv" + echo "" + exit 1 +fi + +echo "✓ python3-venv ist verfügbar" + +# Erstelle Virtual Environment +echo "" +echo "→ Erstelle Virtual Environment..." + +if [ -d "venv" ]; then + echo " Virtual Environment existiert bereits." + read -p " Neu erstellen? (j/n): " -n 1 -r + echo + if [[ $REPLY =~ ^[Jj]$ ]]; then + rm -rf venv + python3 -m venv venv + echo " ✓ Virtual Environment neu erstellt" + fi +else + python3 -m venv venv + echo " ✓ Virtual Environment erstellt" +fi + +# Aktiviere Virtual Environment +echo "" +echo "→ Aktiviere Virtual Environment..." +source venv/bin/activate + +if [ $? -ne 0 ]; then + echo "❌ Fehler beim Aktivieren des Virtual Environments" + exit 1 +fi + +echo " ✓ Virtual Environment aktiviert" + +# Upgrade pip +echo "" +echo "→ Aktualisiere pip..." +pip install --upgrade pip --quiet +echo " ✓ pip aktualisiert" + +# Installiere Abhängigkeiten +echo "" +echo "→ Installiere Abhängigkeiten aus requirements.txt..." +pip install -r requirements.txt + +if [ $? -ne 0 ]; then + echo "" + echo "❌ Fehler beim Installieren der Abhängigkeiten" + exit 1 +fi + +echo "" +echo "========================================" +echo " ✓ Setup erfolgreich abgeschlossen!" +echo "========================================" +echo "" +echo "Zum Starten des Programms:" +echo " ./run.sh" +echo "" +echo "Oder manuell:" +echo " source venv/bin/activate" +echo " python3 main.py" +echo ""