TypeError: 'module' Objekt ist nicht aufrufbar
File "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", line 82, in __init__
self.serv = socket(AF_INET,SOCK_STREAM)
TypeError: 'module' object is not callable
Warum bekomme ich diese Fehlermeldung? Ich bin verwirrt.
Was müssen Sie wissen, um meine Frage zu beantworten?
483
3
socket
ist ein Modul, das die Klassesocket
enthält.Sie muessen
socket.socket(...)
oderfrom socket import socket
machen:Beachten Sie, dass der Fehler hier ziemlich einfach zu verstehen ist: Wenn
module object is not callable
, rufen Sie wahrscheinlich ein Modul-Objekt auf! Was'ist ein Modulobjekt? Es ist die Art von Objekt, die man erhält, wenn man ein Modul importiert.Aber selbst wenn Sie das nicht verstehen (was in Ordnung ist, es ist oft verwirrend, dass Klassen, Module, Funktionen usw. einfach nur Objekte sind, wie alles andere auch), gibt es eine ziemlich einfache Möglichkeit, mit der Fehlersuche zu beginnen:
Modulobjekt ist nicht aufrufbar
. Das hört sich so an, als würde ich versuchen, etwas aufzurufen, das nicht aufrufbar ist. Ich frage mich, was ich versuche, aufzurufen?"socket
auf. Das sollte aufrufbar sein! Ich frage mich, ob die Variablesocket
das ist, wofür ich sie halte?`print socket
Es scheint, als ob Sie das Modul
socket
alsimport socket
importiert haben. Daher istsocket
das Modul. Sie muessen entweder diese Zeile inself.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
aendern, ebenso wie jede andere Verwendung dessocket
-Moduls, oder die Import-Anweisung infrom socket import socket
aendern.Oder Sie haben ein
import socket
nach Ihremfrom socket import *
:Ich weiß, dass dieser Thread schon ein Jahr alt ist, aber das eigentliche Problem liegt in Ihrem Arbeitsverzeichnis.
Ich glaube, das Arbeitsverzeichnis ist
C:\Benutzer\Administrator\Dokumente\Mibot\oops\
. Bitte suchen Sie in diesem Verzeichnis nach der Dateisocket.py
. Wenn Sie sie gefunden haben, benennen Sie sie um oder verschieben Sie sie. Wenn Sie socket importieren, wirdsocket.py
aus dem aktuellen Verzeichnis anstelle vonsocket.py
aus dem Python-Verzeichnis verwendet. Ich hoffe, das hat geholfen :)Hinweis: Verwenden Sie niemals die Dateinamen aus dem Python's-Verzeichnis, um den Dateinamen Ihres Programms's zu speichern; es wird zu Konflikten mit Ihrem Programm (s).