Seminare
Seminare

Python Packaging und Tooling - Moderne Projektstrukturierung

Seminar - GFU Cyrus AG

Sie beherrschen nach dem Seminar den vollständigen Workflow moderner Python-Projektorganisation - von der Wahl der passenden Projektstruktur über das Management von Abhängigkeiten bis hin zur Veröffentlichung auf PyPI.

Sie setzen Werkzeuge wie uv, pip-tools, Ruff und Pre-commit gezielt ein, um saubere, konsistente und automatisierte Entwicklungsprozesse zu etablieren.

Darüber hinaus lernen Sie, wie Sie Lockfiles erstellen, Systemabhängigkeiten kontrollieren, Python-Pakete testen und über GitHub Actions oder Tox automatisiert veröffentlichen - sowohl intern als auch öffentlich.

Ihre Projekte werden dadurch wartbar, reproduzierbar und optimal für die Teamarbeit vorbereitet.
Termin Ort Preis*
firmenintern auf Anfrage auf Anfrage
*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

Inhalte:
  • Tag 1 - Grundlagen, Imports, Pakete und Module
    • Der Python-Importmechanismus: import, from, Star-Import
    • Namespaces verstehen: Was ist ein Namespace?
    • Modulauflösung mit sys.path und sys.modules
    • Das site Modul
    • Python-Import-Reihenfolge nach PEP 8
    • Das Modulobjekt und seine Attribute
    • Praxis: Settings-Modul als Konfiguration verwenden
    • Modul-Loader und Finder
    • __name__ == __main__ - Bedeutung und Verwendung
    • Modularten: Standardbibliothek, Drittanbieter, eigene Module, C-Extensions
    • Modul-Docstring: Bedeutung und Nutzung
    • Verschachtelte Pakete & relative Importe
    • __init__.py und Paketstruktur
    • Python Programm im Modul-Kontext starten
    • Star-Imports und __all__
    • Öffentliche vs. private Module (Best Practices)
    • Namespace Packages (optional)
    • __pycache__ und .gitignore: sinnvolle Konfiguration
    • importlib: Dynamisches Laden von Modulen
    • Übungsprojekt

  • Tag 2 - Abhängigkeiten und Projektlayouts
    • Was sind Abhängigkeiten und warum ist Dependency Management so schwierig?
    • pip - Grundlagen, Befehle und der Python Package Index
    • Benutzer- und globale Installationen
    • Nachteile globaler Installationen
    • Virtuelle Umgebungen, Einrichtung und Analyse von venv
    • Paket- und Projektlayouts verstehen: Flat vs. src, Wiederverwendbarkeit und Fehlervermeidung
    • Einführung in pyproject.toml: Metadaten, Dependencies und Build-System
    • Lokale Installation, editierbare Installation
    • Testorganisation in Projekten: pytest und Strukturierung
    • Praxis-Workshop: Zwei Projekte lokal installieren und importieren
    • Abhängigkeitsmanagement in Projekten: Trennung von Runtime und Dev-Dependencies
    • Einführung in pip-tools und Lockfiles
    • Umgebungsvariablen & .env-Dateien mit python-dotenv
    • Git-Konfiguration: .gitignore und .gitattributes für Python-Projekte
    • Linter und Formatter: Einführung und Best Practices
    • Black, Isort, Bandit (Security), Pylint
    • Ruff: PEP 8-konformes Linting und Konfiguration (Workshop Demo)
    • Übungsprojekte

  • Tag 3 - Poetry, uv & Veröffentlichung auf PyPI
    • Was ist ein Wheel
    • Installationsquellen: Lokal, Wheels, GitHub, PyPI, TestPyPI, tar.gz
    • Einführung in uv: Projektinitialisierung und Dependency Management
    • uv Deep Dive: Dependencies, optionale Dependencies, Dependency Groups
    • uv pip API
    • uv Workspaces
    • Überblick: Build-Systeme in Python, Motivation und Vergleich
    • Paketveröffentlichung: Upload auf TestPyPI und PyPI mit uv
    • Version Bumping und Git Tags
    • Wie halte ich Version und Release-Historie konsistent?
    • Projekt-Metadaten in pyproject.toml: sinnvolle Felder und Best Practices für Veröffentlichungen
    • Einführung in Tox: Tests und Umgebungen automatisieren
    • Continuous Integration / Continuous Delivery: GitHub CI/CD-Pipeline für Python-Projekte
    • Jobs und Steps einer CI/CD-Pipeline mit GitHub Actions
    • Environment Variablen und Secrets: sichere Handhabung in CI/CD-Pipelines
    • Pre-commit Hooks für Qualitätssicherung: Ruff und Tests vor jedem Commit
    • Praxis-Workshop: CI/CD-Pipeline

Zielgruppe:
  • Python-Entwickler:innen, DevOps-Engineers und Data Scientists
  • Technische Projektleiter:innen mit Fokus auf Softwarequalität
  • Software-Architekt:innen, die stabile Build- und Release-Prozesse suchen
  • Teams, die Python in CI/CD, Microservices oder Datenprojekten einsetzen



  • Teilnahmevoraussetzungen:
    • Sie verfügen über Grundkenntnisse in Python
      , z. B. beim Arbeiten mit Funktionen, Modulen und Imports
    • Sie haben bereits einfache Projekte mit pip install umgesetzt
    • Sie benötigen keine Vorkenntnisse in pyproject.toml, poetry oder pip-tools
    • Das Seminar richtet sich an Einsteiger im Bereich Packaging ebenso wie an Umsteiger und Fortgeschrittene

Seminarkennung:
S5319
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha