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

Error parsing NEOS solution file in Pyomo

我在Pyomo环境下写了一个很简单的模型,添加了如下内容 最后有两个命令。

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

当我运行代码时returns出现以下错误:

ERROR: Error parsing NEOS solution file NEOS log: Job 10044842 dispatched password: MXusJYWF ---------- Begin Solver Output ----------- Condor submit: 'neos.submit' Condor submit: 'watchdog.submit' Job submitted to NEOS HTCondor pool.

我知道这是由于 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>>'