我正在尝试在Mac上使用PuLP来解决一个移动I问题。我已经在我的PYTHONPATH中添加了目录'/Applications/CPLEX_Studio1210/cplex/python/3.7/x86-64_osx',。但无论何时我尝试
prob.solve(CPLEX_CMD()),
我收到以下错误消息:
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.发布于 2020-06-04 21:41:09
这与this堆栈溢出问题密切相关,但略有不同,因为您使用的是Mac而不是Windows。然而,答案的要点是相同的。正如注释中提到的,您需要设置PATH环境变量(而不是PYTHONPATH),以便PuLP可以执行cplex二进制文件。
在您的示例中,应该如下所示:
$ export PATH=$PATH:/Applications/CPLEX_Studio1210/cplex/bin/x86-64_osx另请参见有关在OS X上设置环境变量并使其持久存在的this堆栈溢出问题。
或者,您可以在CPLEX_CMD构造函数中将path参数设置为cplex可执行文件的位置(请参见source code)。
发布于 2020-06-04 20:57:10
你能试一下吗?
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://stackoverflow.com/questions/62193984
复制相似问题