Seite 1 von 1

Module einbauen

Verfasst: Montag 16. März 2009, 21:27
von PalotheBear
Hallo!

habe 2 Files main.py und Ccc.py

file "main.py"
/----------------------------------------------------------------------\
from Ccc import Ccc

def fff(): return 111

c = Ccc()
c.yyy()
\----------------------------------------------------------------------/
file "Ccc.py"
/----------------------------------------------------------------------\
# from main import fff

class Ccc:
def yyy(self):
print("do Ccc.yyy, fff=", fff)
\----------------------------------------------------------------------/
Der Import von "fff" verursacht, für mich unerklärlich immer die Fehlermeldung "ImportError:cannot import name Ccc"

Bitte um Hife

Verfasst: Montag 16. März 2009, 21:30
von DasIch
Verwende Code-Tags. Wie sieht eigentlich die Ordnerstruktur aus?

Verfasst: Montag 16. März 2009, 21:34
von PalotheBear
Die beiden Files sind im selben Verzeichnis abgespeichert. oder meinst du was anderes?

Verfasst: Montag 16. März 2009, 21:44
von DasIch
Die Importe sind zirkulär deswegen gehts nicht. Wenn Ccc.py so aussieht gehts:

Code: Alles auswählen

class Ccc(object):
    def yyy(self):
        print 'do Ccc.yyy, fff="", fff'

from main import fff
Allerdings ist dass trotzdem unschön, strukturier dass am besten um.

Verfasst: Montag 16. März 2009, 21:44
von Dauerbaustelle
Ich denke mal, dass du in dem einem Modul das andere importierst, aber im anderen das eine - du machst Cross-Importing, das tut natürlich nicht.

Verfasst: Montag 16. März 2009, 21:46
von str1442
1. Traceback posten

2. Ist so eine Struktur sehr unsauber.

3. Die Module wollen sich gegenseitig importieren. Das geht so nicht. Du kannst nicht einfach einen Namen aus einem Modul holen, ohne das das Modul interpretiert wird, und dann versucht es wieder main zu importieren, welches ja grade importiert werden sollte.