Es gibt ein paar gute Tutorials (hier), die Module und Pakete erklären.
Auch die Referenz-Dokumentation zeigt, wie es aufgebaut werden muss: https://docs.python.org/3/reference/import.html#regular-packages
parent/
__init__.py
one/
__init__.py
two/
__init__.py
three/
__init__.py
Arbeitet man mit einer IDE (wie zum Beispiel IntelliJ), kann man direkt aus der IDE ein Regular-Module-Package erzeugen, dass die IDE auch direkt als Modul lädt. Und dann ist die __init__.py
Datei nicht notwendig.
Wenn man das nutzt (und vergisst), wird bei einer Übergabe des Codes an andere es zu Problemen kommen.
Ruft man im Ordner des ausgecheckten Codeberg Repository python
auf, um in die Python Shell zu kommen, kann man mit
>>>help('modules')
…eine Liste der Module bekommen. mastobot
wird, wegen der fehlenden __init__.py
nicht dabei sein.
Legen wir __init__.py
in mastobot
(und dann auch in oshelper
), haben wir in der 4-spaltigen Liste dann auch mastobot
und oshelper
. Unsere playground .py
Dateien sind ja selbst Module, also lege ich auch dort eine __init__.py
an.
Wir brauchen also ungefähr diese Struktur:
my-playground/
mastobot/
__init__.py
oshelper/
__init__.py
__init__.py
me.py
Ich committe mal die Dateien ins Codeberg Repo, damit es nicht weiter zu Problemen kommt.
Comments
No comments yet. Be the first to react!