在 Pyomo 中解析 NEOS 解决方案文件时出错

问题描述

我在 Pyomo 环境中写了一个非常简单的模型,并添加了以下内容 最后两个命令。

solver_manager = SolverManagerFactory('neos')
results = solver_manager.solve(model,opt='cplex')

当我运行代码时它返回以下错误

ERROR:解析 NEOS 解决方文件时出错 NEOS 日志:Job 10044842 派发密码:MXusJYWF ---------- 开始求解器输出 ----------- Condor submit: 'neos.submit' Condor submit: 'watchdog.submit' Job 提交到 NEOS HTCondor 矿池。

我知道这是因为 Neos 最近要求将作业提交给 NEOS 的电子邮件地址,但我该如何解决这个问题?

解决方法

自 2021 年 1 月 8 日起,Neos 要求所有提交的电子邮件地址都有效。首先,您必须注册:https://neos-server.org/neos/index.html

之后必须升级pyomo目录下的一个文件(我这里是../anaconda3/lib/python3.8/site-packages),后面找这个路径pyomo/neos/一定要更新带有此文件 https://github.com/Pyomo/pyomo/blob/master/pyomo/neos/kestrel.py

的文件 kestrel.py

升级文件时,请在 kestrel.py 文件的 224 行中输入有效的电子邮件。

,

对阿尔瓦罗·阿文达诺 (Alvaro Avendano) 所说内容的补充说明。在第 231 行之前编辑 kernel.py,即写入 email = os.environ.get('NEOS_EMAIL','')) 的行,并使用以下内容:

 os.environ['NEOS_EMAIL'] = '<<you email address>>'