TypeError: 'module' nesnesi çağrılabilir değil
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
Neden bu hatayı alıyorum? Kafam karıştı.
Sorumu yanıtlamak için ne bilmeniz gerekiyor?
483
3
soket
,
socket` sınıfını içeren bir modüldür.Yapmanız gereken
socket.socket(...)
veyafrom socket import socket
:Buradaki hatayı anlamanın oldukça kolay olduğuna dikkat edin: `modül nesnesi çağrılabilir değilse', muhtemelen bir modül nesnesini çağırıyorsunuzdur! Modül nesnesi nedir? Bir modülü içe aktardığınızda elde edeceğiniz türden bir şeydir.
Ancak bunu anlamasanız bile (ki sorun değil, sınıfların, modüllerin, fonksiyonların vb. diğer her şey gibi sadece nesneler olması genellikle kafa karıştırıcıdır), hata ayıklamaya başlamanın oldukça kolay bir yolu vardır:
modül nesnesi çağrılabilir değil
. Bu, çağıramayacağınız bir şeyi çağırmaya çalışıyormuşum gibi geliyor. Acaba neyi çağırmaya çalışıyorum? "socket
çağırıyorum. Bu çağrılabilir olmalı! Acabasocket
değişkeni düşündüğüm şey mi?print socket
Görünüşe göre yaptığınız şey
socket
modülünüimport socket
olarak içe aktarmak. Bu nedenlesocket
modüldür. Ya bu satırıself.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
olarak vesocket
modülünün diğer her kullanımında olduğu gibi değiştirmeniz ya da import ifadesinifrom socket import socket
olarak değiştirmeniz gerekir.Ya da
from socket import *
öğenizden sonra birimport socket
öğeniz var:Bu başlığın bir yıllık olduğunu biliyorum, ancak asıl sorun çalışma dizininizde.
Çalışma dizininin
C:\Users\Administrator\Documents\Mibot\oops\
olduğuna inanıyorum. Lütfen bu dizindesocket.py
adlı dosyayı kontrol edin. Bulduğunuzda yeniden adlandırın veya taşıyın. Soketi içe aktardığınızda, Python'ın dizinindekisocket.py
yerine geçerli dizindekisocket.py
kullanılır. Umarım bu yardımcı olmuştur. :)Not: Programınızın dosya adını kaydetmek için asla Python'un dizinindeki dosya adlarını kullanmayın; program(lar)ınızla çakışacaktır.