"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 的答案保留为已接受的响应,因为它是最小的正确解决方案。我只是在此处包含这些其他选项以供参考。