1

我正在尝试使用 UBUNTU 中的 cplex 求解器在 pyomo 中实现一个简单的优化问题。我的程序使用 glpk 求解器运行良好。现在我使用 conda 安装了 cplex,docplex,但在解决时收到了以下错误警告。它找不到 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"
4

3 回答 3

1

使用 conda 安装 CPLEX 仅安装该 python 库的 python 库和引擎运行时。这不会安装库运行所不需要的东西。

如果您正在寻找 cplex 可执行文件,您想要安装 CPLEX Community Edition,然后运行 ​​Xavier 上面提到的 [installDir]/python/setup.py。

我认为您可以在此处注册和下载 CPLEX CE:https ://www.ibm.com/account/reg/us-en/signup?formid=urx-20028

于 2019-06-19T15:11:06.430 回答
1

源代码中,我们可以看到pyomo附带了几个 CPLEX 求解器接口。其中一个接口要求 cplex “可执行文件(即 CPLEX “交互式”)在您的文件中PATH,我相信这是默认设置。但是,当您安装 anacondacplex软件包时,您不会获得此可执行文件。这部分解释了错误您收到的消息。

如果您想使用该CPLEXSHELL界面(即,与 CPLEX 交互的界面),那么您需要安装 IBM ILOG CPLEX Optimization Studio 版本之一(例如,免费的社区版),然后将您的更新PATH到指向COS_INSTALL_DIR/cplex/bin/PLATFORMCOS_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
于 2019-06-24T23:02:36.267 回答
0

你是 [installDir]/python/setup.py 从你的 Python 环境中运行的吗?

于 2019-06-19T14:08:51.533 回答