Pyomo在Docker机器上找不到GLPK解算器
我有一台运行Linux的Docker机器。我正在使用Pyomo和GLPK解算器。我从Docker映像的shell命令行安装了GLPK,使用Pyomo在Docker机器上找不到GLPK解算器,docker,pyomo,glpk,Docker,Pyomo,Glpk,我有一台运行Linux的Docker机器。我正在使用Pyomo和GLPK解算器。我从Docker映像的shell命令行安装了GLPK,使用apt get install GLPK utils 我的所有代码都保存在子文件夹/code 我可以看到glpsol安装在路径下:/usr/bin 我可以看到,/usr/bin是path环境变量下的路径 我的相关进口货物如下: from pyomo.environ import * from pyomo.opt import SolverFactory 运行
apt get install GLPK utils
我的所有代码都保存在子文件夹/code
我可以看到glpsol
安装在路径下:/usr/bin
我可以看到,/usr/bin
是path环境变量下的路径
我的相关进口货物如下:
from pyomo.environ import *
from pyomo.opt import SolverFactory
运行opt=SolverFactory(“glpk”)
时,出现以下错误:
Attempting to use an unavailable solver.
The SolverFactory was unable to create the solver "glpk"
and returned an UnknownSolver object. This error is raised at the point
where the UnknownSolver object was used as if it were valid (by calling
method "solve").
The original solver was created with the following parameters:
type: glpk
_args: ()
options: {}
我不确定这是否与Docker相关,或者我是否应该为apt get
使用不同的包
我使用了所有东西的最新版本
非常感谢您的帮助。您使用哪一行编辑路径?我最近遇到了一个类似的问题,我在docker图像中设置了路径,使用“~”(即用户快捷方式符号)向.bashrc添加了一个导出。只要docker映像是以/bin/bash启动的,这就可以了。但是,我配置的gitlab运行程序正在使用/bin/sh启动我的测试环境,它似乎没有正确解释“~”。你也这么做过吗?对不起,我没有仔细阅读。如果
glpsol
已经在/usr/bin
中,那么Pyomo应该会找到它。我在docker图像上的/usr/local/bin
中保存了python。在我的本地机器上,我在/usr/local/bin
中同时使用了python和glpsol,并且运行良好。可能是由于可执行文件不在完全相同的文件夹中导致的错误?我尝试了上述更改,但没有解决问题。它似乎与通过django视图运行代码有关。b/c我可以在任何文件夹中的独立脚本中运行代码,并且运行良好。如果我通过视图运行代码,无论是通过方法还是仅使用直接代码,我都会得到错误。