Julia LoadError:MethodError,尽管(表面上)使用了工作代码

Julia LoadError:MethodError,尽管(表面上)使用了工作代码,julia,linear-programming,glpk,julia-jump,Julia,Linear Programming,Glpk,Julia Jump,大家好,这里是编程新手 我正在尝试使用Julia和GLPK解决一个线性规划问题,重点是尝试,因为到目前为止,无论我尝试什么,我都会遇到错误。代码如下: using JuMP, GLPK m = Model(GLPK.Optimizer) @variable(m, x1 >= 0 ) @variable(m, x2 >= 0 ) @variable(m, x3 >= 0 ) @objective(m, Max, 200x1 +200x2 + 700x3 ) @co

大家好,这里是编程新手

我正在尝试使用Julia和GLPK解决一个线性规划问题,重点是尝试,因为到目前为止,无论我尝试什么,我都会遇到错误。代码如下:

using JuMP, GLPK
m = Model(GLPK.Optimizer)
@variable(m,  x1 >= 0  )
@variable(m,  x2 >= 0  )
@variable(m,  x3 >= 0  )
@objective(m, Max,  200x1 +200x2 + 700x3  )
@constraint(m,  2x1 + x2 + 3x3 <= 22  )
@constraint(m,  x1 + 2x2 + 4x3 <= 20  )
@constraint(m,  x1 + x2 + x3 <= 10  )
optimize!(m)
println("Objective value: ", JuMP.objective_value(m))
println("x1 = ", JuMP.value(x1))
println("x2 = ", JuMP.value(x2))
println("x2 = ", JuMP.value(x3))
Pkg.status():


也许这个例子使用的是一个旧的API版本,它在一年前发生了一些变化

尝试(至少需要
跳转
0.21.0):

如果您不打算添加属性(或跳转版本早于0.21.0,但至少早于0.18.0),还有一个较短的版本:

然而,我总是使用第一个。我经常使用的一个常见属性是我希望看到的消息有多详细,例如:

m = Model(optimizer_with_attributes(GLPK.Optimizer,  "msg_lev" => GLPK.GLP_MSG_ALL))
编辑 查看您的包
状态
执行以下操作:

using Pkg
pkg"rm GLPKMathProgInterface"
pkg"up JuMP"
(@v1.5) pkg> rm GLPKMathProgInterface

(@v1.5) pkg> update
这将使您能够使用软件包版本进行分类。当您这样做的时候,我的代码的第一个版本将工作(现在您有一个过时的跳转版本)


此外,注意<代码>原子< /代码>不再被维护——考虑切换到VS代码。

< P>将我的评论收集到一个更容易阅读的答案中。

GLPKMathProgInterface.jl软件包阻止了您的GLPK.jl版本。运行以下命令以更新包:

Pkg.rm("GLPKMathProgInterface")
Pkg.update()
或者,您可以在包模式下运行等效命令。要进入打包模式,请键入
]
。然后在包模式下,运行以下操作:

using Pkg
pkg"rm GLPKMathProgInterface"
pkg"up JuMP"
(@v1.5) pkg> rm GLPKMathProgInterface

(@v1.5) pkg> update

您可以将错误stacktrace添加到您的问题中吗?您使用的Julia版本是什么?如果您编辑您的问题,将stacktrace作为代码块包含,阅读stacktrace会更容易。:)是的,我意识到:P我现在已经把它添加到问题中了。你的代码在我的Mac电脑上运行。尝试使用Pkg运行
;Pkg.status()
在您的Julia REPL中,并将其输出粘贴到您的问题中。
optimizer\u与\u属性
是在Jump 0.21.0中添加的(因此这是最新版本),据我所知,新API是在Jump 0.18.0中引入的。所以这完全取决于您运行的版本!
Pkg.rm("GLPKMathProgInterface")
Pkg.update()
(@v1.5) pkg> rm GLPKMathProgInterface

(@v1.5) pkg> update