Pyomo找不到GLPK求解器

问题描述 投票:4回答:8

我正在尝试将GLPK求解器与Pyomo一起使用。我有一个已经过测试的工作模型,但是一直有错误说GLPK无法找到。

警告:找不到解决方法'glpk'所需的'glpsol'可执行文件

我成功安装了glpk。我还将目录添加到我的路径变量中,以便可以全局调用执行的目录。我用命令行中的glpsol --help测试了这个,并看到打印的帮助信息。

下面的帖子说它应该工作,但唉,事实并非如此。

How do you install glpk-solver along with pyomo in Winpython

有任何想法吗?

python-2.7 linear-programming glpk
8个回答
2
投票

这个答案很晚,但我想分享对我有用的解决方案。

solvername='glpk'

solverpath_folder='C:\\glpk\\w64' #does not need to be directly on c drive

solverpath_exe='C:\\glpk\\w64\\glpsol' #does not need to be directly on c drive

我曾经这样做过:

sys.path.append(solverpath_folder)

solver=SolverFactory(solvername)

这适用于硬币的cbc解算器 - 但它不适用于glpk。然后我尝试了不同的东西:

solver=SolverFactory(solvername,executable=solverpath_exe)

这适用于cbc和glpk。不知道为什么会这样(我真的没有做任何其他事情)。

版本:Python 2.7或Python 3.7(同时测试),glpk 4.65


1
投票

您可以使用此命令安装glpk solver -

brew install glpk


0
投票

对于任何有相同问题的人,我找到了一种解决方法(不是解决方案!)。我将所有glpk文件复制到我的C:/ Python27目录中,然后(惊喜!)Python现在可以找到它们。

在接受这个之前我会坚持一个真正的解决方案。


0
投票

所以看起来你的Python安装不会处理set path变量。

为单独的“PYTHONPATH”环境变量设置普通的Python安装,以查找其他模块。还可以选择在Windows注册表中创建一个条目,或者(就像您已经提到的那样)将文件移动到Python主目录,如果未设置“PYTHONHOME”,则可以相对于安装目录识别该目录。

3.3.3中的Python纪录片中的更多信息。 https://docs.python.org/2/using/windows.html#finding-modules


0
投票

我遇到了同样的问题。我不知道这是不是solution,但它肯定让解算器工作。

下载Windows安装后。我复制了w64文件夹中的所有文件,并将它们直接粘贴到我的Python工作目录中。

之后我的python代码可以找到解算器。

注意:这是为Python 3.4.3.4, Windows 8.1 64 bit


0
投票

安装glpk包对我有用。当我使用Anaconda时:

conda install -c conda-forge glpk

这是在我的PATH变量中已经包含'glpsol'exectuable的文件夹路径之后。


0
投票

阅读源代码here建议您尝试:

from pyutilib.services import register_executable, registered_executable
register_executable(name='glpsol')

也许它会给出一个线索


-1
投票

感谢Stonebig的建议:mays建议您尝试:

   from pyutilib.services import register_executable, registered_executable
   register_executable( name='glpsol')

也许它会给出一个线索

我在Linux下有一种情况,在启动Python之前我无法添加到PATH环境值,所以我不得不用我的求解器('glpsol')的路径来扩充os.environ['PATH']。这本身就不够了,但是通过在修改PATH之后进行Stonebig建议的调用,它起作用了。 Pyomo确实找到了解算器,并且能够解决我的模型。

© www.soinside.com 2019 - 2024. All rights reserved.