运行 NEOS 服务器上的 AMPL 时出现 BadStatusLine 错误
BadStatusLine error when running AMPL on NEOS server
我正在尝试 运行 NEOS 服务器上的 AMPL 代码,如 AMPL 网站上所述:run ampl on neos。我使用了一个简单的模型文件,其中包含以下选项:
option solver "/home/arthur/amplide.linux64/kestrel";
option kestrel_options 'solver=loqo';
option loqo_options 'minlocfil sigfig=8 outlev=2';
option neos_server 'www.neos-server.org:3333';
最后一行来自 NEOS 网站上的教程:https://neos-server.org/neos/kestrel.html
我收到以下错误,似乎没有作业排队:
File "/home/arthur/amplide.linux64/kestrel", line 217, in <module>
kestrel = kestrelAMPL()
File "/home/arthur/amplide.linux64/kestrel", line 19, in __init__
result = self.neos.ping()
...
File "/usr/lib/python2.7/httplib.py", line 408, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
exit code 1
<BREAK>
如果我在 AMPL IDE 而不是终端中执行它,它就会挂起。
所以我找到了一个简单的解决方案。
如果您在任何文本编辑器中编辑 AMPL 目录中的 kestrel
文件(来自 Kestrel 存档的文件),您可以替换行
self.neos = xmlrpclib.ServerProxy("http://%s:%s" % (self.host,self.port))
与
self.neos = xmlrpclib.ServerProxy("https://%s:%s" % (self.host,self.port) )
之后我的工作就顺利完成了。 NEOS 似乎在 2016 年 7 月弃用了 http 调用。
或者(我没有尝试过),而不是使用来自 AMPL 或 NEOS 网站的 kestrel 版本,您也许可以从这里尝试修改后的包:https://github.com/Pyomo/pyomo/blob/master/pyomo/neos/kestrel.py
我正在尝试 运行 NEOS 服务器上的 AMPL 代码,如 AMPL 网站上所述:run ampl on neos。我使用了一个简单的模型文件,其中包含以下选项:
option solver "/home/arthur/amplide.linux64/kestrel";
option kestrel_options 'solver=loqo';
option loqo_options 'minlocfil sigfig=8 outlev=2';
option neos_server 'www.neos-server.org:3333';
最后一行来自 NEOS 网站上的教程:https://neos-server.org/neos/kestrel.html
我收到以下错误,似乎没有作业排队:
File "/home/arthur/amplide.linux64/kestrel", line 217, in <module>
kestrel = kestrelAMPL()
File "/home/arthur/amplide.linux64/kestrel", line 19, in __init__
result = self.neos.ping()
...
File "/usr/lib/python2.7/httplib.py", line 408, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
exit code 1
<BREAK>
如果我在 AMPL IDE 而不是终端中执行它,它就会挂起。
所以我找到了一个简单的解决方案。
如果您在任何文本编辑器中编辑 AMPL 目录中的 kestrel
文件(来自 Kestrel 存档的文件),您可以替换行
self.neos = xmlrpclib.ServerProxy("http://%s:%s" % (self.host,self.port))
与
self.neos = xmlrpclib.ServerProxy("https://%s:%s" % (self.host,self.port) )
之后我的工作就顺利完成了。 NEOS 似乎在 2016 年 7 月弃用了 http 调用。
或者(我没有尝试过),而不是使用来自 AMPL 或 NEOS 网站的 kestrel 版本,您也许可以从这里尝试修改后的包:https://github.com/Pyomo/pyomo/blob/master/pyomo/neos/kestrel.py