Seite 1 von 1

Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 17:58
von JakobPrie
Hallo, ich möchte aus einer Datei mehrere Funktionen aus einer anderen Datei ("module_skills") in einem unterordner (welcher "resources" heißt) aufrufen.
Jetzt habe ich es mit folgender Zeile probiert:

Code: Alles auswählen

from .resources.module_skills import assamble_array, get_enumerate, get_text_beetween
Dabei bekomme ich aber fogenden Fehler:

Code: Alles auswählen

ImportError: attempted relative import with no known parent package
Was mache ich falsch?

Re: Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 18:30
von __blackjack__
@JakobPrie: Du hast da Murks mit den Packages gemacht. Da muss in jedem Package eine `__init__.py` liegen und das aktuelle Arbeitsverzeichnis darf nicht innerhalb irgendeines Packages liegen.

Re: Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 18:38
von JakobPrie
Und wie mach ich das, wenn ich in einer Datei Funktionen aus einer anderen Datei in einem anderen Ordner öffnen möchte

Re: Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 18:59
von __blackjack__
@JakobPrie: Du möchtest keine Funktionen in einer Datei in einem Ordner verwenden, Du möchtest Funktionen aus einem Modul in einem Package verwenden. Und dazu musst Du ein korrektes Packge erstellen, und dann dafür sorgen, dass sich dieses Package im Suchpfad für Module/Packages von Python befindet. Die beiden gängigen Varianten: Das Package auf oberster Ebene befindet sich im aktuellen Arbeitsverzeichnis, oder das Package ist installiert. Nicht gut, weil hässlicher Hack: man manipuliert `sys.path`.

Re: Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 19:57
von JakobPrie
okay, wie könnte ich das lösen, anstatt ein package zu erstellen

Re: Aufrufen von Methoden in anderer Python-Datei

Verfasst: Dienstag 6. Oktober 2020, 20:13
von __blackjack__
@JakobPrie: Im Grunde gar nicht. Warum sollte man das auch wollen?