pyomo пишет в блокноте jupyter

Привет, я написал простой скрипт на блокноте Jupyter, чтобы смоделировать проблему, а затем использовать SolverFactory pyomo следующим образом:

from pyomo.opt import SolverFactory
opt = SolverFactory('ipopt')
result = opt.solve(model)

Версия для ноутбука не может работать, потому что ipopt не может быть найден, но когда я использую командную строку, она запускается. Это как-то связано с jupyter notebbok? Я предпочитаю использовать блокнот Jupyter, если это возможно, поскольку он интерактивен. Заранее спасибо.


person Orion T    schedule 15.12.2017    source источник


Ответы (1)


Похоже, что это, вероятно, из-за различий в sys.path между Jupyter и командной строкой - см. -how-to-import-own-modules-in-jupyter">sys.path отличается в Jupyter и Python - как импортировать собственные модули в Jupyter?.

Для ее решения либо внесите рекомендованные там изменения, либо вручную укажите путь к исполняемому файлу решателя:

opt = SolverFactory("ipopt", executable="/your_path/to_solver/ipopt")

executable может быть как абсолютным, так и относительным путем.

person Dan McCabe    schedule 15.12.2017
comment
Я попытался указать свое двоичное местоположение, но все еще получаю аналогичную ошибку: RuntimeError: Попытка использовать недоступный решатель. SolverFactory не удалось создать ipopt решателя, и он вернул объект UnknownSolver. Эта ошибка возникает в момент, когда объект UnknownSolver использовался так, как если бы он был действительным (путем вызова методаsolve). - person Orion T; 16.12.2017