Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5259

Re: [Python-de] Import problem im Eigendem Module Paket

From Stefan Schwarzer <sschwarzer@sschwarzer.net>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Import problem im Eigendem Module Paket
Date 2018-10-05 20:49 +0200
Message-ID <mailman.126.1538765374.20824.python-de@python.org> (permalink)
References <pp85j1$7e1$1@tota-refugium.de> <e66b5bd1-175f-0cb9-d120-c6b46390ca0d@sschwarzer.net>

Show all headers | View raw


On 05/10/2018 19.04, Manfred Gil wrote:
> ich Arbeite gerade mit einem selbsterstellten Module.
> 
> Mein Problem ist das ich kein Module aus einem Übergeordnetem 
> Ordner importieren kann.
> 
> Ich bekomme stets die Fehlermeldung:
> 
> File "import_test.py", line 4, in <module>
>     from ..config import daten as da
> SystemError: Parent module '' not loaded, cannot perform relative import

Ich verstehe das so, dass du erst `my_paket` (der
Parent von `config`) `import`ieren musst.

> Ich hab gelesen das man die __init__.py eigendlich leer lassen sollte, 
> jedoch schreiben andere das mit einem 
> __all__ = ['auflistung der Ordner']
> es gehen sollte, was bei mir noch nicht der fall ist.

Die Definition von `__all__` bestimmt nur, was bei
einem `from module import *` in den Namensraum des
importierenden Moduls importiert werden soll.

> Andere schreiben wiederrum, das in dieser __init__.py
> man div. Importe machen sollte damit der import in der Modulen klappt.

Kommt drauf an, was man unter "klappen" versteht. ;-)

Nimm an, du hast folgende Paket-Struktur:

a
  b
  c

sowie dein Modul `my_module`.

Wenn in `a/__init__.py` keine Imports stehen, musst du in
`my_module`

  import a.b

schreiben, wenn du auf Attribute in `a.b` zugreifen willst.

Wenn in `a/__init__.py` der Import

  import a.b

steht, reicht in Modul `my_module` schon der Import

  import a

um auf `a.b` und seine Attribute zugreifen zu können, weil
`a.b` bereits mit dem Import von `a` importiert wurde. Das
passiert nicht implizit ohne `import`-Anweisungen.

Ich würde allerdings eher explizite Imports in `my_module`
verlangen, das erscheint mir sauberer. Also nicht in
`a/__init__.py` Imports irgendwelcher "Unter-Module"
vornehmen, sondern den Nutzer deiner Bibliothek alle
nötigen Module explizit importieren lassen.

Ich hoffe, ich konnte etwas helfen.

Viele Grüße
Stefan

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Import problem im Eigendem Module Paket Manfred Gil <manfred-gil@t-online.de> - 2018-10-05 17:04 +0000
  Re: [Python-de] Import problem im Eigendem Module Paket Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2018-10-05 20:49 +0200
  Re: Import problem im Eigendem Module Paket Peter Otten <__peter__@web.de> - 2018-10-05 22:10 +0200
  Re: Import problem im Eigendem Module Paket Hermann Riemann <nospam.ng@hermann-riemann.de> - 2018-10-06 10:19 +0200
  Re: [Python-de] Import problem im Eigendem Module Paket Hartmut Goebel <h.goebel@goebel-consult.de> - 2018-10-07 10:52 +0200
    Re: [Python-de] Import problem im Eigendem Module Paket Manfred Gil <manfred-gil@t-online.de> - 2018-10-07 09:20 +0000

csiph-web