"TypeError: 'module' object is not callable" when initializing Gekko module in function
"TypeError: 'module' object is not callable" when initializing Gekko module in function
我正在尝试编写一个函数,在给定一组参数的情况下,使用 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,但我以前也做过类似的事情(但不是在函数中)并且没有任何问题。我不知道从哪里开始解决它:任何指示?
从 docs 我认为导入应该是:
from gekko import GEKKO
您可以导入 gekko
几种不同的方法来创建模型 m
。
方法一
from gekko import GEKKO
m = GEKKO()
方法二
import gekko as gk
m = gk.GEKKO()
方法三
如果您想使用其他一些模块,例如 gekko
中的 chemicals or deep learning 对象,您可以使用类似的东西:
from gekko import gekko, chemical, brain
m = gekko()
c = chemical.Properties(m)
b = brain.Brain(m)
方法四
尽管有可能,但您永远不应执行以下操作,因为可能会与其他导入发生命名空间冲突:
from gekko import *
m = GEKKO()
顺便说一句,好问题!我建议将 rdas 的答案保留为已接受的响应,因为它是最小的正确解决方案。我只是在此处包含这些其他选项以供参考。
我正在尝试编写一个函数,在给定一组参数的情况下,使用 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,但我以前也做过类似的事情(但不是在函数中)并且没有任何问题。我不知道从哪里开始解决它:任何指示?
从 docs 我认为导入应该是:
from gekko import GEKKO
您可以导入 gekko
几种不同的方法来创建模型 m
。
方法一
from gekko import GEKKO
m = GEKKO()
方法二
import gekko as gk
m = gk.GEKKO()
方法三
如果您想使用其他一些模块,例如 gekko
中的 chemicals or deep learning 对象,您可以使用类似的东西:
from gekko import gekko, chemical, brain
m = gekko()
c = chemical.Properties(m)
b = brain.Brain(m)
方法四
尽管有可能,但您永远不应执行以下操作,因为可能会与其他导入发生命名空间冲突:
from gekko import *
m = GEKKO()
顺便说一句,好问题!我建议将 rdas 的答案保留为已接受的响应,因为它是最小的正确解决方案。我只是在此处包含这些其他选项以供参考。