Modularisierung eines Python‑Projekts in PyCharm – am Beispiel einer WetterApp

Eine saubere Modularisierung ist entscheidend, wenn ein Projekt sowohl eigenständig laufen als auch in anderen Anwendungen wiederverwendet werden soll. Das folgende Vorgehen zeigt, wie man in PyCharm ein Projekt so strukturiert, dass es als Python‑Paket installierbar wird – passend zu einer setup.py wie:

from setuptools import setup, find_packages

setup(
    name="weatherapp",
    version="0.1.0",
    packages=find_packages(),
    include_package_data=True,
)


1. Projekt als Paket strukturieren

Damit find_packages() funktioniert, benötigt jede Modul‑Ebene eine klare Struktur:

weatherapp/
    __init__.py
    screens/
        __init__.py
        forecast_screen.py
    services/
        __init__.py
        weather_reader.py
        weather_icons.py
    config/
        __init__.py
        settings.py
    ui/
        visualizer.kv
    assets/
        icons/
        forecast_plot.png
setup.py

PyCharm erleichtert das Anlegen dieser Struktur:

  • Rechtsklick → New → Python Package
  • PyCharm erzeugt automatisch __init__.py
  • Dateien können sauber in Module verschoben werden

2. Module klar trennen

Die Modularisierung folgt dem Prinzip „eine Verantwortung pro Modul“:

  • screens/ enthält ausschließlich Kivy‑Screens
  • services/ enthält API‑ und Datenlogik
  • config/ enthält Einstellungen
  • ui/ enthält KV‑Dateien und Assets

Diese Trennung sorgt dafür, dass das Paket später problemlos in anderen Projekten importiert werden kann.


3. setup.py korrekt konfigurieren

Die gezeigte setup.py nutzt:

  • find_packages() → erkennt automatisch alle Python‑Pakete
  • include_package_data=True → bindet KV‑Dateien, Icons und Assets ein

Damit PyCharm diese Dateien beim Packaging berücksichtigt, muss zusätzlich eine MANIFEST.in erstellt werden:

recursive-include weatherapp/ui *.kv
recursive-include weatherapp/assets *

PyCharm erkennt diese Datei automatisch beim Build.


4. Paket lokal installierbar machen

In PyCharm:

  1. Terminal öffnen
  2. Im Projektordner ausführen:
pip install -e .

Das installiert weatherapp im Editable Mode – Änderungen im Code wirken sofort.

Damit kann das Paket:

  • in anderen Projekten importiert werden
  • als Plugin genutzt werden
  • ohne Kopieren von Dateien wiederverwendet werden

5. Modular testen und integrieren

Durch die Paketstruktur kann PyCharm:

  • einzelne Module separat ausführen
  • Screens unabhängig testen
  • Services ohne UI testen
  • das Paket in anderen Projekten importieren:
from weatherapp.screens.forecast_screen import ForecastScreen

Damit wird die Wiederverwendbarkeit maximiert.


Fazit

Die Kombination aus:

  • klarer Paketstruktur
  • sauber getrennten Modulen
  • einer einfachen setup.py
  • include_package_data=True
  • MANIFEST‑Regeln für KV‑ und Asset‑Dateien

macht dein Projekt modular, installierbar und wiederverwendbar – sowohl als eigenständige App als auch als integriertes Modul in größeren Anwendungen wie dem BuildingDataVisualizer.

Veröffentlicht in Uncategorized.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten durch die Website einverstanden.