2017-01-17 4 views
0

Я пытался использовать CPLEX с pyomo решить некоторые LP, тем не менее, при работе я обнаружил следующее сообщение об ошибкеНовый учебный CPLEX истек лицензионный сообщение

[ 0.00] Setting up Pyomo environment 
[ 0.00] Applying Pyomo preprocessing actions 
[ 0.00] Creating model 
[ 0.02] Applying solver 
The license for this version of CPLEX has expired. 
ERROR: "[base]/site-packages/pyomo/opt/base/solvers.py", 568, solve 
     Solver (cplex) returned non-zero return code (64) 
ERROR: "[base]/site-packages/pyomo/opt/base/solvers.py", 571, solve 
     See the solver log above for diagnostic information. 
[ 0.03] Pyomo Finished 
ERROR: Unexpected exception while running model: 
     Solver (cplex) did not exit normally 

Кроме того, я понимаю, что при вводе «CPLEX» в терминал ответ

The license for this version of CPLEX has expired.

тем не менее, я просто скачать академическую версию CPLEX

  1. IBM ILOG CPLEX Optimization студия 12,7

И решатель работает при использовании oplide для запуска модели OPL и питон при выполнении примеров, которые пришли с решателя.

Перед установкой этой версии я удалил предыдущий cplex, который у меня был. Я не знаю, как заставить его работать, надеюсь, вы могли бы вести меня.

ответ

0

Pyomo может использовать CPLEX через интерактивный (cplex.exe) или Python API. Неясно, какой из них используется в вашем случае, поэтому я постараюсь рассмотреть оба вопроса.

Если вы удалите CPLEX Optimization Studio, он не будет пытаться обнаружить все локальные среды Python и удалить из них старый CPLEX Python API.

Вы должны быть в состоянии удалить старую CPLEX Python API, просто удалив папку cplex из вашего site-packages каталога (вы также должны удалить папку, которая выглядит как cplex-12.6.3.0-py2.7.egg-info). Вы должны сделать это для каждой версии Python, где у вас установлен старый API CPLEX Python (например, 2.7 и 3.4, а также любые виртуальные среды).

После этого вы должны переустановить API-интерфейс CPLEX 12.7 Python в соответствии с инструкциями here. Надеюсь, это избавит вас от ваших сообщений об истекшей лицензии для Python и позволит Pyomo работать с CPLEX.

Вы также упомянули, что запуск интерактивного интерфейса CPLEX с терминала также дает вам сообщение с истекшим сроком действия лицензии. Я бы выполнил поиск вашей файловой системы для cplex.exe и удалил все, которые не находятся в каталоге установки COS 12.7. Вам также необходимо убедиться, что каталог установки COS 12.7 находится на вашем PATH, как упомянуто here.