Исполняемый файл cplex не найден - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь реализовать простую задачу оптимизации в pyomo, используя cplex solver в UBUNTU. Моя программа отлично работает с GLPK Solver. Теперь я установил cplex, docplex, используя conda, но получил следующее предупреждение об ошибке при решении. он не может найти исполняемый файл cplex

ВНИМАНИЕ: Не удалось найти исполняемый файл 'cplex', который требуется для решателя
ОШИБКА: непредвиденное исключение при работе модели: Не найден исполняемый файл для решателя 'cplex' код ошибки: 1
Retval: Нет

Я добавил строки ниже в файле .bashrc, но все равно не смог получить результат

export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/docplex:$PATH"
export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/cplex:$PATH"

Ответы [ 3 ]

0 голосов
/ 19 июня 2019

Установка CPLEX с помощью conda устанавливает только библиотеку python и среду выполнения движка для этой библиотеки python. Это не устанавливает то, что не нужно для работы библиотеки.

Если вы ищете исполняемый файл cplex, вы хотите установить CPLEX Community Edition, а затем запустить [installDir] /python/setup.py, упомянутый выше Xavier.

Я думаю, что вы можете зарегистрироваться и скачать CPLEX CE здесь: https://www.ibm.com/account/reg/us-en/signup?formid=urx-20028

0 голосов
/ 25 июня 2019

Исходный код показывает, что pyomo поставляется с несколькими интерфейсами решателя CPLEX.Один из этих интерфейсов требует, чтобы исполняемый файл cplex (то есть интерактивный CPLEX) находился в вашем PATH, и я считаю, что это значение по умолчанию. Однако при установке пакета anaconda cplex вы делаете , а не получить этот исполняемый файл. Это частично объясняет сообщение об ошибке, которое вы получаете.

Если вы хотите использовать интерфейс CPLEXSHELL (т. Е. Тот, который отправляется интерактивному CPLEX), то вы 'Вам нужно будет установить одну из редакций IBM ILOG CPLEX Optimization Studio (например, бесплатную Community Edition), а затем обновить PATH, указав COS_INSTALL_DIR/cplex/bin/PLATFORM (где COS_INSTALL_DIR - это место, в котором вы установили CPLEX Optimization Studio, и PLATFORM это платформа, на которой вы установили (например, x86-64_linux)).

В качестве альтернативы, и я думаю, что это то, что вы действительно пытаетесь сделать, если вы хотите использовать интерфейс pyomo, который соединяетв CPLEX Python API, вам просто нужно исправить переменные окружения.

Вместо:

export PATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages/cplex:$PATH"

Попробуйте использовать:

export PYTHONPATH="/home/yash/anaconda3/envs/my_env/lib/python3.6/site-packages:$PYTHONPATH"

Кроме того, это не такСовершенно ясно, но похоже, что вы установили пакет cplex в виртуальную среду Python (иначе, virtualenv).Если это так, то вам просто нужно «активировать» virtualenv, и пакет cplex будет автоматически доступен.Например, для вас может работать следующее:

cd /home/yash/anaconda3/envs/my_env/
source bin/activate
# use pyomo and cplex here
# when you're done, deactivate the virtualenv, like so:
deactivate
0 голосов
/ 19 июня 2019

ты бежал [installDir]/python/setup.py из вашей среды Python?

...