Ein Paket starten

Python-Pakete entwickeln

James Fulton

Climate informatics researcher

Warum überhaupt ein Paket bauen?

  • Damit sich dein Code leichter wiederverwenden lässt
  • Um viel Kopieren und Einfügen zu vermeiden
  • Um deine Funktionen aktuell zu halten
  • Um deinen Code weiterzugeben
Python-Pakete entwickeln

Kursinhalte

Du baust ein vollständiges Paket und behandelst:

  • Dateistruktur
  • Import-Struktur
  • Paket installierbar machen
  • Lizenzen und READMEs hinzufügen
  • Stil und Unit-Tests für hohe Qualität
  • Paket bei PyPI registrieren und veröffentlichen
  • Paketvorlagen nutzen
Python-Pakete entwickeln

Scripts, Module und Pakete

  • Script – Eine Python-Datei, die wie python myscript.py ausgeführt wird

  • Package – Ein Verzeichnis voller Python-Code zum Importieren

    • z. B. numpy
  • Subpackage – Ein kleineres Paket innerhalb eines Pakets

    • z. B. numpy.random und numpy.linalg
  • Module – Eine Python-Datei in einem Paket, die den Paketcode enthält.

    • z. B. Beispiel in den nächsten 2 Folien
  • Library – Entweder ein Paket oder eine Sammlung von Paketen

    • z. B. die Python-Standardbibliothek (math, os, datetime, ...)
Python-Pakete entwickeln

Verzeichnisbaum eines Pakets

Verzeichnisbaum für ein einfaches Paket

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Dieses Verzeichnis, mysimplepackage, ist ein Python-Paket
  • simplemodule.py enthält den gesamten Paketcode
  • __init__.py markiert dieses Verzeichnis als Python-Paket
Python-Pakete entwickeln

Inhalte des einfachen Pakets

__init__.py

Leere Datei

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

Datei mit verallgemeinerten Funktionen und Code.

Python-Pakete entwickeln

Subpackages

Verzeichnisbaum für Paket mit Subpackages

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Python-Pakete entwickeln

Lass uns üben!

Python-Pakete entwickeln

Preparing Video For Download...