2017-11-06 3 views
-2

Ich benutze Spyder 3.2.4 Ich habe Modul (oder Ordner) A erstellt und den Dateinamen b.py erstellt. In b.py Ich habe class B(): erstelltFehler beim Importieren des selbst definierten Moduls in Spyder 3.2.4

Jetzt oben definierten Klasse in test.py Ich importieren

test.py

von A Import B b = B()

Ich bin Fehler erhalten ImportError: cannot import name 'B'

Wie Sie dieses Problem beheben.

+0

zugänglich sein, verwenden Sie einfach 'von B Import B' zuerst b ist Dateiname. – BladeMight

Antwort

0

Datei a.py:

from b import B 
class A: 
    def call(): 
     B.hello() 
A.call() 

Datei b.py:

class B: 
    def hello(): 
     print("Hello") 

Run a.py und Ausgang Hello, seine Klasse von einer anderen * .py Dateien in Python müssen Sie importiert die Dateinamen verwenden, wie Quelle importieren, z b für b.py.

Wenn Sie Ordner und * .py-Dateien darin haben und diese importieren möchten, sollten Sie den Ordner als eine Gruppe von Modulen und die Dateinamen als Module verwenden.

Zum Beispiel:

./A/b.py 
./test.py 

in test.py:

from A import b 
b.B.hello() 

from A import b Importe ganze b.py Datei importieren nur B Klasse müssen Sie es in von angeben:

from A.b import B 

nach dieser Klasse B wird ohne b.B

+0

In meinem Fall ist A Ordner (Modul), b.py ist Python-Datei, jetzt erstelle ich eine andere Datei say test.py. In test.py ist meine erste Codezeile "von A Import B" und die zweite Codezeile ist "b = B()" wenn ich das ausführe, erhalte ich den Fehler "ImportError: kann den Namen 'B' nicht importieren, wie um dieses Problem zu beheben. –

+0

Verwenden Sie dann 'from A.b import B', um die Klasse' B' von 'A/b.py' zu importieren. – BladeMight

+0

Danke von A.b import B funktioniert –

Verwandte Themen