2

我一直在尝试使用 cplex 和 pyomo 来解决一些 LP,但是在运行时我发现了以下错误消息

[    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 优化工作室 12.7

求解器在使用 oplide 运行 OPL 模型时工作,在运行求解器附带的示例时使用 python。

在安装此版本之前,我卸载了以前的 cplex。我不知道如何使它工作,我希望你能指导我。

4

1 回答 1

0

Pyomo 可以通过交互式 ( cplex.exe) 或 Python API 使用 CPLEX。目前尚不清楚您的案例中使用的是哪一个,因此我将尝试同时涵盖两者。

如果您卸载 CPLEX Optimization Studio,它将不会尝试检测您的所有本地 Python 环境并从它们中删除旧的 CPLEX Python API。

您应该能够删除旧的 CPLEX Python API,只需cplex从您的site-packages目录中删除该文件夹(您还应该删除类似于 的文件夹cplex-12.6.3.0-py2.7.egg-info)。对于安装了旧 CPLEX Python API 的每个 Python 版本(例如,2.7 和 3.4,以及任何虚拟环境),您都必须这样做。

之后,您应该按照此处的说明重新安装 CPLEX 12.7 Python API 。希望这将消除您的 Python过期许可证消息,并允许 Pyomo 与 CPLEX 一起使用。

您还提到从终端运行 CPLEX 交互也会给您一个许可证过期消息。我会在您的文件系统中搜索cplex.exe并删除任何不在 COS 12.7 安装目录中的文件。您还需要确保 COS 12.7 安装目录在您的目录中,如此PATH所述。

于 2017-01-17T16:32:20.123 回答