pulp.solvers.PulpSolverError: PuLP: 无法执行glpsol.exe

7

我是一个Python和优化方面的新手。我遇到了一些错误,请帮我解决。我在运行Anaconda 3的PyCharm中尝试运行下面提到的代码。

from pulp import *
x = LpVariable("x", 0, 3)
y = LpVariable("y", 0, 1)
prob = LpProblem("myProblem", LpMinimize)

prob += x + y <= 2

prob += -4*x + y

status = prob.solve(GLPK(msg = 0))

value(x)

我遇到了一个错误

Traceback (most recent call last): File "D:/Projects/RH Analytics/RNN/TestPulp.py", line 10, in status = prob.solve(GLPK(msg = 0)) File "C:\Users\rahul.bajaj\AppData\Local\Continuum\Anaconda3\lib\site-packages\pulp\pulp.py", line 1643, in solve status = solver.actualSolve(self, **kwargs) File "C:\Users\rahul.bajaj\AppData\Local\Continuum\Anaconda3\lib\site-packages\pulp\solvers.py", line 346, in actualSolve raise PulpSolverError("PuLP: cannot execute "+self.path) pulp.solvers.PulpSolverError: PuLP: 无法执行 glpsol.exe

进一步,我从这里下载了glpk包,从zip文件中提取出来并放在C盘的一个文件夹中。在路径变量中,我添加了"C:\winglpk-4.57\glpk-4.57\w64"。

但即使现在我在PyCharm IDE中运行程序仍然会出现相同的错误。请帮助我找出我错过了什么。

5个回答

6

pulp.pulpTestAll()
当你运行这个命令时,会执行一系列的测试。在第32行上会看到:

Solver pulp.solvers.GLPK_CMD unavailable

因此,请尝试下载glpk-utils包然后运行

glpsol

这也可以通过cmd执行,我已经尝试过了。


1
我运行了 pulp.pulpTestAll(),得到以下输出:* Solver <class 'pulp.solvers.GLPK_CMD'> passed. 但我仍然遇到错误 PulpSolverError: PuLP: Error while executing glpsol.exe。 - KHAN irfan

3

我曾经遇到过同样的问题,通过重命名变量,我成功解决了它。当代码中的变量名称与 LpVariable() 中声明的变量名称相同时,它可以工作,否则它会出现相同的错误。

x = LpVariable('x', 0, 3)      # This doesn't work
x = LpVariable('x_var', 0, 1)  # This works

我不知道这是否仅是在我的机器上发生的情况,因为在文档中,他们也将变量的名称用于两个不同的变量,但值得一试。


0
对我来说,问题在于我通过Anaconda安装了Pulp(因为这是公司的政策)。我通过Anaconda提示符卸载了它,然后再次通过普通命令提示符中的“pip install pulp”安装,问题解决了。

0

在Ubuntu中,它给了我相同的错误。使用以下命令解决了这个问题,

sudo apt-get install python-glpk
sudo apt-get install glpk-utils

第一个包未找到,但安装第二个对我有用。 - wfgeo
第一个包没有找到,但是安装第二个对我有用。 - undefined

-2

经过一番努力,我终于解决了这个问题:将use_mps设置为False

prb.solve(use_mps=False)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接