2013-04-19 24 views
9

Ich habe andere Beiträge hier zu diesem Thema angeschaut und keine klare Antwort gefunden, obwohl ich sicher bin, dass es etwas einfaches ist.AttributeError: 'Modul' Objekt hat kein Attribut

Mein Code hat die folgende Struktur ...

import matplotlib 
... 
... 

class xyz: 
    def function_A(self,...) 
     ... 
     ... 
     fig1 = matplotlib.figure() 
     ... 
     ... 

Ich rufe ‚functiona‘ von einer Instanz von ‚xyz‘ und wenn ich das tue ich die Fehlermeldung:

AttributeError: 'module' object has no attribute 'figure' 

Basierend auf den Posts, die ich gelesen habe, scheint es ein Problem mit der Art zu sein, wie ich Matplotlib importiere, aber ich kann es nicht lösen. Ich habe versucht, es innerhalb der Function_A-Definition zu importieren (ich denke, das ist schlechte Form, aber ich wollte es testen), aber ich habe immer noch den gleichen Fehler.

Ich habe meinen Code "function_A" woanders ohne Probleme verwendet, aber es war nur eine Funktion in einem Modul, keine Methode in einer Klasse.

Jede Hilfe wird geschätzt!

Antwort

15

Ich denke, du hast recht und es ist ein Importproblem. Das matplotlib Modul nicht haben eine figure Funktion:

>>> import matplotlib 
>>> matplotlib.figure 
Traceback (most recent call last): 
    File "<ipython-input-130-82eb15b3daba>", line 1, in <module> 
    matplotlib.figure 
AttributeError: 'module' object has no attribute 'figure' 

Die Figur Funktion ist tiefer gelegen. Es gibt ein paar Möglichkeiten, es zu ziehen in, aber die üblichen Import sieht eher aus wie:

>>> import matplotlib.pyplot as plt 
>>> plt.figure 
<function figure at 0xb2041ec> 

Es ist wahrscheinlich eine gute Idee, diesen Brauch zu halten, weil sie von der Mehrheit der Beispiele verwendet wird Sie auf die finden Web, wie diejenigen in der matplotlib gallery. (Die Galerie ist immer noch der erste Ort, an den ich gehe, wenn ich herausfinden muss, wie ich etwas machen soll: Ich finde ein Bild, das aussieht wie ich will und dann den Code anschaue.)

+4

Jesus Christus, ich ' Ich bin ein Idiot. Mein anderer Code importiert das Modul korrekt. Danke für die Hilfe. – gearhead

Verwandte Themen