Nutzung einer Python-Klasse in einem anderen Ordner

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
McBattery
User
Beiträge: 1
Registriert: Dienstag 10. Januar 2023, 21:35

Hallo ich bin gerade ein wenig am verzweifeln. Ich habe in der Datei tokenizer.py eine Klasse erstellt, die Tokenizer heißt. Diese Datei liegt in dem Ordner tokenizer. Dieser Ordner liegt wiederum in dem Ordner projekt. In dem selben Ordner liegt auch der Order test. In der Datei test.py möchte ich nun auf die Klasse Tokenizer zugreifen. Deswegen wollte ich sie mit dem Befehl:
from tokenizer.tokenizer import Tokenizer
importieren.
Allerdings bekomme ich dann folgenden Fehler bei der Ausführung:
ModuleNotFoundError: No module named 'tokenizer'.
Ich bitte um schnelle Lösung dieses wahrscheinlich einfachen Problems. Ich glaube ich habe einfach noch Verständnisprobleme in dem importieren von eigenen Klassen in Python. :D
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Na, das ist ja ein Ding, dass du hier im schnelel Lösung bittest. Wo genau kommt dieser Anspruch her?

Wie und wo Module gesucht werden, hängt davon ab, aus welchem Verzeichnis du das Programm startest.
Und dann bitte einmal die komplette Ordnerstruktur mit allen .py Dateien. Denn wie ein Package erstellt wirst, hast du ja in der Dokumentation gelesen und weißt deshalb, dass da mehr dazu gehört, als _eine_ Datei in einen Ordner zu kopieren.
Dazu gehört dann auch der abschnitt "relative Importe".
Benutzeravatar
__blackjack__
User
Beiträge: 14067
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@McBattery: Es ist ein bisschen komisch ein Package zu haben in dem Dann ein Modul mit dem gleichen Namen liegt, in dem dann nur eine Klasse definiert wird, die effektiv dann auch noch mal diesen Namen das dritte mal wiederholt. Ähnliches gilt für ein `test`-Package in dem dann ein `test`-Modul liegt. Man würde da mindestens mal die Module in den Packages zu den Packages machen, also das der jeweilige Inhalt gleich im Package liegt und nicht noch mal in einem Modul in dem Package. Wobei momentan es so aussieht als wären die Packages (noch?) überflüssig und es sollten einfach nur zwei Module sein.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten