Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyomo在Docker机器上找不到GLPK解算器_Docker_Pyomo_Glpk - Fatal编程技术网

Pyomo在Docker机器上找不到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 运行

我有一台运行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
运行
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我可以在任何文件夹中的独立脚本中运行代码,并且运行良好。如果我通过视图运行代码,无论是通过方法还是仅使用直接代码,我都会得到错误。