python - Gekko 无法访问服务器,本地解决 json 文件错误
问题描述
我想我遇到了与此堆栈溢出相同的问题。
昨天我能够解决我的 Gekko 模型,而今天我什至无法解决 Apmonitor 网站上的示例。解决需要永远,我收到以下错误:
ImportError: No solution or server unreachable.
Show errors with m.solve(disp=True).
Try local solve with m=GEKKO(remote=False).
我尝试按照上面提到的堆栈溢出帖子中的建议在本地解决它:
m = GEKKO(remote=False)
但是,然后我收到以下错误:
Error: 'results.json' not found. Check above for additional error details
Traceback (most recent call last):
和
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/mr/kgzm2xln40dcc10zkq06drhc0000gn/T/tmpzqxlyw7_gk_model0/options.json'
服务器是否已关闭,任何人都可以帮助我在本地解决它吗?
编辑,代码添加:
from gekko import GEKKO
m = GEKKO(remote=False) # create GEKKO model
y = m.Var(value=2) # define new variable, initial value=2
m.Equation(y**2==1) # define new equation
m.options.SOLVER=1 # change solver (1=APOPT,3=IPOPT)
m.solve(disp=True)
print('y: ' + str(y.value)) # print variable value
解决方案
Local Solve Error withremote=False
您引用的错误是因为求解器未能找到解决方案,或者因为您在 MacOS 上并且需要一些带有gcc
. 如果您使用的是 MacOS,请尝试安装gcc
以获取所需的共享库,如MacOS 上本地解决方案的 GitHub 问题讨论中所述。
brew install gcc
如果是求解器问题,您可以在显示求解器输出时看到错误消息:
m.solve(disp=True)
由于 IPOPT 中线性求解器的许可限制或您的本地可执行文件没有求解器之一,本地求解有时与远程服务器求解不同(例如,IPOPT 不适用于MacOS、ARM Linux 上的本地求解,或 x86-64 Linux)。如果请求的求解器选项不可用,则处理本地请求的apm
可执行文件会自动恢复到下一个可用的求解器选项。您可以尝试m.options.SOLVER=1
将 APPOPT 或m.options.SOLVER=2
BPOPT 作为不同的求解器。
1
此外,如果要在求解器未成功找到解决方案时引发异常,则应将调试级别保留为。否则,设置debug=0
并使用m.options.APPSTATUS
以确定求解器是否成功。
m.solve(disp=True,debug=0)
if m.options.APPSTATUS==0:
print('Solver failed to find a solution')
else:
print('Successful solution')
如果您可以发布一个显示问题的最小示例,我们可以提供有关让您的程序在本地运行的更具体的建议。
云计算与remote=True
公共服务器今天有几个小时不可用,但现在已备份。由于 Gekko 的流行,服务器有时会因偶尔的维护活动而超载或不可用。如果您想在云中托管自己的系统或作为专用服务器,可以使用专用 APMonitor 服务器作为Linux的计算服务器或Windows的计算服务器。如果您确实创建了自己的服务器,请使用:
m = GEKKO(server='http://10.0.0.10',remote=True)
但替换10.0.0.10
为服务器的 IP 地址。
推荐阅读
- python - 将 JSON 从 API 导入 CSV 是作为单行导入,所有数据点作为单独的列
- javascript - 从 node_modules 导入枚举时,webpack encore 失败
- python - 生成两个随机数列表以获得固定和
- python - Python:如何更改 Word 文档的页面大小,然后将其打印成 PDF?
- python - 将数组的 numpy 数组作为星号传递给函数会更改数组中第一项的值
- ubuntu - Ubuntu Sonar 服务失败:启动请求重复太快。结果“开始限制命中”失败
- java - 当VPN连接时,用户将能够进入应用程序,如果他们没有连接,他们将无法进入。我怎么做?
- python - 为什么这个 Python/Requests 语句不会导致错误?
- php - 如何为大型历史数据构建mysql表?
- deezer - 我可以在没有访问令牌的情况下添加到 Deezer 协作播放列表吗?