4.4 KiB

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)

# Nur die wirklich benötigten Abhängigkeiten installieren
pip install -r requirements.txt

Entwicklungsumgebung

# Alle Entwicklungsabhängigkeiten installieren
pip install -r requirements-dev.txt

Produktionsumgebung

# 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

pip install -r requirements.txt
pip install pytest==8.3.4 pytest-cov==6.0.0

Produktionsserver installieren

pip install -r requirements.txt
pip install gunicorn==23.0.0

Wartung

Requirements prüfen

# Installierte Pakete anzeigen
pip list

# Veraltete Pakete prüfen
pip list --outdated

# Abhängigkeitsbaum anzeigen
pip show --verbose Flask

Sicherheitsupdates

# 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

    pip install --upgrade pip
    pip install -r requirements.txt --no-deps
    
  2. Cache nutzen

    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