Pyomo - GLPK - Ошибка

Я установил Pyomo (v 4.4.1) и GLPK для Windows (v 4.55). Я добавил каталог для glpsol.exe в переменную PATH, и я могу успешно использовать команду glpsol --help из любого каталога в командной строке. Согласно блогу Pyomo, это должно указывать на успешную установку. ГЛПК в отношении Пьомо. Однако когда я пробую следующий пример:

from pyomo.opt import SolverFactory
opt = SolverFactory("glpk")

Я получаю сообщение об ошибке:

ERROR:pyomo.opt:Failed to create solver with name 'glpk':
The asl solver plugin was not registered as a valid solver plugin - cannot construct solver plugin with IO mode=nl

ERROR: "[base]\site-packages\pyomo\opt\base\solvers.py", 200, __solver_call__
Failed to create solver with name 'glpk':

Файл glpsol.exe находится в C:\glpk и был добавлен в переменную PATH.

Я не могу этого добиться, и любая помощь будет принята с благодарностью!


person Ryan Erwin    schedule 21.10.2016    source источник
comment
Вы действительно просто используете эти две строки и получаете эту ошибку?   -  person sascha    schedule 21.10.2016
comment
Да ... это часть более крупного примера, но то, что я привел, можно воссоздать на моей машине.   -  person Ryan Erwin    schedule 21.10.2016
comment
Чтобы быть ясным: python, вызванный для файла, состоящего только из этих двух строк, дает эту ошибку?   -  person sascha    schedule 21.10.2016
comment
Да, вставьте эти две строки в Spyder, Jupyter NB и т. Д., Запустите его, и это то, что он мне дает.   -  person Ryan Erwin    schedule 21.10.2016
comment
Ну ... не могу решить вашу проблему, но это не имеет ничего общего с exe-файлом glpk или настройками пути. Раньше ломается! Возможно, ваша pyomo-install не работает, возможно, вам нужно будет дополнительно импортировать общую pyomo-среду, я не знаю. (Я также удивлен, что pyomo хочет каким-то образом подключиться к glkp через .nl, что не должно работать!)   -  person sascha    schedule 21.10.2016


Ответы (1)


Вам необходимо import pyomo.environ, прежде чем вы вызовете SolverFactory.

person Gabe Hackebeil    schedule 21.10.2016
comment
Гейб, ты долбанный человек! Это сработало! Где в документации это найти? - person Ryan Erwin; 21.10.2016
comment
@RyanErwin Это часть каждого примера. (Но да, документы, ну ... редкие) - person sascha; 21.10.2016
comment
Это не очень хорошо документировано, и это скорее артефакт того, как Pyomo раньше был разделен на несколько репозиториев. Я надеюсь, что в ближайшем будущем мы сможем реорганизовать интерфейсы решателя, потому что это поведение не очень интуитивно понятно, ИМО. - person Gabe Hackebeil; 21.10.2016
comment
Я обновил сообщение об ошибке, которое появляется, когда пакет pyomo.environ не импортируется. - person Bill Hart; 23.10.2016