# MYP Platform - Requirements Verwaltung ## Übersicht Die MYP Platform verwendet verschiedene Requirements-Dateien für unterschiedliche Umgebungen: - `requirements.txt` - **Basis-Abhängigkeiten basierend auf tatsächlich verwendeten Imports in app.py** - `requirements-dev.txt` - Entwicklungsabhängigkeiten (Testing, Debugging, etc.) - `requirements-prod.txt` - Produktionsabhängigkeiten (optimiert für Performance) ## Installation ### Basis-Installation (Empfohlen) ```bash # Nur die wirklich benötigten Abhängigkeiten installieren pip install -r requirements.txt ``` ### Entwicklungsumgebung ```bash # Alle Entwicklungsabhängigkeiten installieren pip install -r requirements-dev.txt ``` ### Produktionsumgebung ```bash # Produktionsabhängigkeiten installieren pip install -r requirements-prod.txt ``` ## Aktualisierte Requirements (Januar 2025) ### Basis-Requirements (requirements.txt) **Basierend auf tatsächlich verwendeten Imports in app.py:** #### Core Flask Framework - **Flask 3.1.1** - Neueste stabile Version - **Flask-Login 0.6.3** - Benutzer-Authentifizierung - **Flask-WTF 1.2.1** - CSRF-Schutz und Formulare #### Datenbank - **SQLAlchemy 2.0.36** - ORM für Datenbankoperationen #### Sicherheit - **Werkzeug 3.1.3** - WSGI-Utilities und Passwort-Hashing - **bcrypt 4.2.1** - Passwort-Hashing - **cryptography 44.0.0** - SSL-Zertifikate #### Smart Plug Steuerung - **PyP100 0.1.2** - TP-Link Tapo Smart Plugs (neueste verfügbare Version) #### System & Monitoring - **psutil 6.1.1** - System-Monitoring - **redis 5.2.1** - Rate Limiting und Caching - **requests 2.32.3** - HTTP-Anfragen #### Template Engine - **Jinja2 3.1.5** - Template-Rendering - **MarkupSafe 3.0.2** - Sichere String-Verarbeitung - **itsdangerous 2.2.0** - Sichere Daten-Serialisierung #### Zusätzliche Core-Abhängigkeiten - **click 8.1.8** - CLI-Kommandos - **blinker 1.9.0** - Flask-Signaling #### Windows-spezifisch - **pywin32 308** - Windows-APIs (nur auf Windows) ## Kompatibilität ### Python-Versionen - **Mindestversion**: Python 3.9 - **Empfohlen**: Python 3.11 oder 3.12 - **Getestet mit**: Python 3.13.3 ### Betriebssysteme - **Windows**: Vollständig unterstützt (mit pywin32) - **Linux**: Vollständig unterstützt - **macOS**: Vollständig unterstützt ## Wichtige Änderungen ### Was wurde entfernt - **Nicht verwendete Pakete**: pandas, numpy, orjson, ujson, structlog - **Entwicklungstools**: black, flake8, mypy (verschoben nach requirements-dev.txt) - **Optionale Pakete**: watchdog, python-dotenv, sphinx ### Was wurde beibehalten - **Nur tatsächlich verwendete Imports** aus app.py und Core-Modulen - **Kritische Sicherheitspakete** für Produktionsbetrieb - **Windows-Kompatibilität** für die Zielumgebung ## Installation mit Extras ### Entwicklungstools installieren ```bash pip install -r requirements.txt pip install pytest==8.3.4 pytest-cov==6.0.0 ``` ### Produktionsserver installieren ```bash pip install -r requirements.txt pip install gunicorn==23.0.0 ``` ## Wartung ### Requirements prüfen ```bash # Installierte Pakete anzeigen pip list # Veraltete Pakete prüfen pip list --outdated # Abhängigkeitsbaum anzeigen pip show --verbose Flask ``` ### Sicherheitsupdates ```bash # Sicherheitslücken prüfen (falls safety installiert) pip install safety safety check # Alle Pakete aktualisieren pip install --upgrade -r requirements.txt ``` ## Troubleshooting ### Häufige Probleme 1. **PyP100 Installation** - Version 0.1.2 ist die neueste verfügbare Version - Bei Problemen: `pip install --no-deps PyP100==0.1.2` 2. **Dependency-Konflikte** - flask-caching erfordert Flask<3, aber Flask 3.1.1 ist installiert - Lösung: `pip install flask-caching --upgrade` oder entfernen 3. **Windows pywin32** - Wird automatisch nur auf Windows installiert - Bei Problemen: `pip install --force-reinstall pywin32` 4. **PATH-Warnungen** - Scripts werden in User-Verzeichnis installiert - Lösung: `--no-warn-script-location` verwenden ### Performance-Tipps 1. **Schnellere Installation** ```bash pip install --upgrade pip pip install -r requirements.txt --no-deps ``` 2. **Cache nutzen** ```bash pip install --cache-dir ~/.pip/cache -r requirements.txt ``` ## Lizenz-Informationen Alle verwendeten Pakete sind mit der MIT/BSD/Apache-Lizenz kompatibel. --- **Letzte Aktualisierung**: Januar 2025 **Basis-Requirements**: Nur tatsächlich verwendete Imports **Nächste Überprüfung**: April 2025