在函数中初始化Gekko模块时出现“TypeError:'模块'对象不可调用”

2024-04-29 01:11:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个函数,给定一组参数,用Gekko来解决最优控制问题。无论出于什么原因,每当我运行这个函数时,它都会给出这个错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-92ece108f7ea> in <module>
      1 import gekko as GEKKO
----> 2 solve_system()

<ipython-input-6-9d154ef663e4> in solve_system(theta, alpha, rho, chi, L_bar, n, w, delta_inc, xi, phi, tau, kappa, GAMMA, T, SIGMA, BETA, s_init, i_init, r_init)
     26 
     27     ##### initialize model #####
---> 28     m = GEKKO()
     29 
     30     ##### parameters #####

TypeError: 'module' object is not callable

我在研究它,它似乎通常是an issue with the way you import the package/module,但我以前也做过类似的事情(但不是在函数中),没有任何问题。我不知道从哪里开始解决这个问题:有什么建议吗


Tags: the函数inimportinput参数initipython
2条回答

您可以通过两种不同的方式导入gekko来创建模型m

方法1

from gekko import GEKKO
m = GEKKO()

方法2

import gekko as gk
m = gk.GEKKO()

方法3

如果您想使用其他一些模块,如gekko中的chemicalsdeep learning对象,您可以使用以下内容:

from gekko import gekko, chemical, brain
m = gekko()
c = chemical.Properties(m)
b = brain.Brain(m)

方法4

尽管这是可能的,但由于与其他导入存在潜在的命名空间冲突,您永远不应执行以下操作:

from gekko import *
m = GEKKO()

顺便说一句,好问题!我建议保留rdas的答案作为可接受的响应,因为它是最基本的正确解决方案。我只是将这些其他选项包括在这里以供参考

docs开始,我认为导入应该是:

from gekko import GEKKO

相关问题 更多 >