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
为什么我得到这个错误? 我困惑。
如何解决这个错误?
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
为什么我得到这个错误? 我困惑。
如何解决这个错误?
当前回答
我猜你已经通过设置全局变量“module”覆盖了内置函数/变量或其他“模块”。只需打印模块,看看里面有什么。
其他回答
我知道这个线程已经有一年了,但真正的问题在您的工作目录中。
我相信工作目录是C:\Users\Administrator\Documents\Mibot\oops\。请在这个目录下检查名为socket.py的文件。一旦你找到它,重命名或移动它。导入socket时,使用当前目录中的socket.py,而不是Python目录中的socket.py。希望这对你有所帮助。:)
注意:永远不要使用Python目录中的文件名来保存程序的文件名;它将与您的程序发生冲突。
看起来你所做的是导入socket模块作为import socket。因此socket就是模块。你需要把这一行改成self。Serv = socket.socket(socket. socket)AF_INET, socket. sock_stream),以及其他任何使用socket模块的情况,或者将import语句更改为from socket import socket。
或者在你的from socket import *之后有一个import socket:
>>> from socket import *
>>> serv = socket(AF_INET,SOCK_STREAM)
>>> import socket
>>> serv = socket(AF_INET,SOCK_STREAM)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'module' object is not callable
我也面临同样的问题。然后我试着不吸 导入你的类
我只是复制了YourClass.py的整个代码,并在主代码(或当前代码)上运行它。它解决了错误
假设YourClass.py的内容是:
class YourClass:
# ......
如果你使用:
from YourClassParentDir import YourClass # means YourClass.py
通过这种方式,如果你尝试调用YourClass(),你将得到TypeError: 'module'对象不可调用。
但是,如果你用:
from YourClassParentDir.YourClass import YourClass # means Class YourClass
或者使用YourClass.YourClass(),它可以工作。
简单回答:您将文件/目录作为函数调用,而不是真正的函数
读:
这种错误发生在导入模块时,将其视为函数并调用它。 所以在python模块中是一个。py文件。包(目录)也可以看作是模块。 假设我有一个create。py文件。在这个文件中,我有一个这样的函数:
#inside create.py
def create():
pass
现在,在另一个代码文件中,如果我这样做:
#inside main.py file
import create
create() #here create refers to create.py , so create.create() would work here
当我将create.py文件作为函数调用时,它会给出这个错误。 所以我得这么做
from create import create
create() #now it works.