TypeError: 'module' objeto não pode ser chamado
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
Porque é que estou a receber este erro? I'estou confuso.
O que você precisa saber para responder a minha pergunta?
483
3
O
socket
é um módulo, contendo a classesocket
.Você precisa fazer
socket.socket(....)
oude soquete de importação de soquete
:Note que o erro aqui é bastante fácil de entender: se
objeto módulo não é chamável
, você provavelmente está chamando um objeto módulo! O que'é um objeto módulo? It'é o tipo de coisa que você obtém quando importa um módulo.Mas mesmo que você não'não entenda isso (o que é bom, é's muitas vezes confundindo que classes, módulos, funções etc. são todos apenas objetos como tudo mais), lá's é uma maneira bem fácil de começar a depurar:
objeto modulo não é chamável
. Isso soa como I'estou tentando chamar algo que você pode't chamar. Pergunto-me o que eu'estou a tentar chamar?"socket
é o que eu penso que é?``.Parece que o que você've fez é importar o módulo
socket
comoimport socket
. Portanto, osocket
é o módulo. Você precisa mudar essa linha paraself.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
, assim como qualquer outra utilização do módulosocket
, ou mudar a instrução de importação para `from socket import socket'.Ou você'tem um "socket de importação" após a sua "importação do socket *":
Eu sei que este tópico tem um ano, mas o verdadeiro problema está no seu directório de trabalho.
Acredito que o diretório de trabalho é "C:{C:}Usuários
Administrador
DocumentosMibot
oops. Por favor, verifique o arquivo chamado
socket.pyneste diretório. Assim que o encontrar, renomeie ou mova-o. Quando você importa o socket,
socket.pydo diretório atual é utilizado ao invés do
socket.py` do diretório Python's. Espero que isto tenha ajudado. :)Nota: Nunca use os nomes dos arquivos do diretório Python's para salvar seu programa's; isso irá conflitar com o(s) seu(s) programa(s).