我正在尝试将MOSEK求解器与cvxpy一起使用,但我得到了:
TypeError:关键字参数必须为字符串
我整理了一个最小的例子,其中错误仍然发生。这是示例:
import cvxpy as cvx
x = cvx.Variable()
y = cvx.Variable()
constraints = [x + y <= 3]
prob2 = cvx.Problem(cvx.Maximize(x + y), constraints = constraints)
sol = prob2.solve(solver=cvx.MOSEK)
print("optimal value", sol)
即使有这个非常简单的问题,它也在发生。
答案 0 :(得分:0)
我不知道cvxpy,但是您在代码段2中包含关键字参数:
[x + y <= 3]
不是字符串cvx.MOSEK
对我来说是未知类型因此,根据您的错误报告,其中至少有一个必须是字符串。尝试使用
constraints = "x + y <= 3"
代替
constraints = [x + y <= 3]
答案 1 :(得分:0)
它看起来像个错误。最好在github上报告一个问题。
现在,如果您的问题是QP,则应与OSQP一起使用:
sol = prob2.solve(solver=cvx.OSQP)