调用函数时,python’module’对象不可调用

python 'module' object is not callable when calling a function

我知道有几个关于这个错误的线索,但我似乎找不到正确的解决方法。

1
2
3
4
5
6
7
from libcomcat.search import search
import datetime
eventlist = search(starttime = datetime(1945,1,1,0,0),
              endtime = datetime.datetime.now(),
               maxlatitude = -5.747, minlatitude = -11.153,
               maxlongitude = 121.619, minlongitude = 104.7,
              producttype = moment-tensor)

它返回"module"对象不可调用。我试图通过打印来确保search是一个可调用函数,而不是一个模块。

1
print (search)

如typeerror中建议的那样:"module"对象不可调用并返回:

function search at 0x7f4308fe5ea0

我到底错过了什么?为什么看起来search既是一个函数又是一个模块?

我尝试过的其他事情:1。按原样导入libcomcat并将其调用为libcomcat.search.search仍然会得到相同的错误。2。有人建议在父目录的innit.py上导入它(我不知道为什么?)仍然不工作


我认为您的问题与datetime函数有关。模块datetime具有一个名为datetime的函数,您正在尝试使用该函数。要么改变

1
import datetime

1
from datetime import datetime

或者使用datetime.datetime()调用函数


这里不可调用的module对象是datetime,表达式如下:

1
datetime(1945,1,1,0,0)

你可能想要的是:

1
datetime.datetime(1945,1,1,0,0)

或者,将import datetime改为from datetime import datetime,将datetime.datetime.now()改为datetime.now()