首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pulp.solvers.PulpSolverError: PuLP:无法执行cplex

pulp.solvers.PulpSolverError: PuLP:无法执行cplex
EN

Stack Overflow用户
提问于 2020-06-04 19:54:51
回答 2查看 817关注 0票数 2

我正在尝试在Mac上使用PuLP来解决一个移动I问题。我已经在我的PYTHONPATH中添加了目录'/Applications/CPLEX_Studio1210/cplex/python/3.7/x86-64_osx',。但无论何时我尝试

prob.solve(CPLEX_CMD())

我收到以下错误消息:

代码语言:javascript
复制
File "/Users/xxxx/opt/anaconda3/envs/pulposm/lib/python3.7/site-packages/pulp/solvers.py", line 468, in actualSolve
    raise PulpSolverError("PuLP: cannot execute "+self.path)
pulp.solvers.PulpSolverError: PuLP: cannot execute cplex.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-04 21:41:09

这与this堆栈溢出问题密切相关,但略有不同,因为您使用的是Mac而不是Windows。然而,答案的要点是相同的。正如注释中提到的,您需要设置PATH环境变量(而不是PYTHONPATH),以便PuLP可以执行cplex二进制文件。

在您的示例中,应该如下所示:

代码语言:javascript
复制
$ export PATH=$PATH:/Applications/CPLEX_Studio1210/cplex/bin/x86-64_osx

另请参见有关在OS X上设置环境变量并使其持久存在的this堆栈溢出问题。

或者,您可以在CPLEX_CMD构造函数中将path参数设置为cplex可执行文件的位置(请参见source code)。

票数 3
EN

Stack Overflow用户

发布于 2020-06-04 20:57:10

你能试一下吗?

代码语言:javascript
复制
import pulp
import cplex
bus_problem = pulp.LpProblem("bus", pulp.LpMinimize)
nbBus40 = pulp.LpVariable('nbBus40', lowBound=0, cat='Integer')
nbBus30 = pulp.LpVariable('nbBus30', lowBound=0, cat='Integer')

# Objective function
bus_problem += 500 * nbBus40 + 400 * nbBus30, "cost"

# Constraints
bus_problem += 40 * nbBus40 + 30 * nbBus30 >= 300
bus_problem.solve(pulp.CPLEX())

print(pulp.LpStatus[bus_problem.status])
for variable in bus_problem.variables():
    print ("{} = {}".format(variable.name, variable.varValue))

来自https://medium.com/@alexfleischer_84755/optimization-simply-do-more-with-less-zoo-buses-and-kids-part2-python-java-c-cc04558e49b5

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62193984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档