我一直在尝试使用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的学术版本
当使用oplide运行OPL模型时,解算器工作,运行解算器附带的示例时使用python。
在安装此版本之前,我卸载了之前的cplex。 我不知道如何让它发挥作用,我希望你能引导我。
答案 0 :(得分: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以及任何虚拟环境)执行此操作。
执行此操作后,您应按照here说明重新安装CPLEX 12.7 Python API。希望这将消除您过期的许可证消息 for Python ,并允许Pyomo与CPLEX一起使用。
您还提到从终端运行CPLEX interactive也会为您提供许可证已过期的消息。我会搜索cplex.exe
的文件系统,并删除COS 12.7安装目录中的任何内容。您还需要确保COS PATH
上的COS 12.7安装目录位于here上。