如何在 Windows 上为 Python 正确安装 qpsolvers?

How to properly install qpsolvers for Python on Windows?

我正在尝试使用 pip 安装 qpsolvers。 安装没有错误,之后模块正确导入。

但是,qpsolvers 没有可用的求解器供其使用:

import qpsolvers

print(qpsolvers.available_solvers)

returns [].

当然,尝试做任何事情都会导致错误:

SolverNotFound: solver 'quadprog' is not available

甚至在 quadprog 的示例文件中。

我已经检查了包的位置,看起来求解器就在那里: solver files in the package's solvers folder

卸载并重新安装或尝试旧版本无效。

我该如何解决这个问题?

我使用 pip install qpsolvers 安装 qpsolvers。 link 在这里:https://pypi.org/project/qpsolvers/

我运行测试代码来检查它是否有效:

from numpy import array, dot
from qpsolvers import solve_qp
import qpsolvers

M = array([[1., 2., 0.], [-8., 3., 2.], [0., 1., 1.]])
P = dot(M.T, M)  # this is a positive definite matrix
q = dot(array([3., 2., 3.]), M).reshape((3,))
G = array([[1., 2., 1.], [2., 0., 1.], [-1., 2., -1.]])
h = array([3., 2., -2.]).reshape((3,))
A = array([1., 1., 1.])
b = array([1.])

x = solve_qp(P, q, G, h, A, b)
print("QP solution: x = {}".format(x))

它产生一个结果:

QP solution: x = [ 0.30769231 -0.69230769  1.38461538]

我也运行问题中的代码行:

print(qpsolvers.available_solvers)

这也会产生一个结果:

['quadprog']

看来一切都很好。 我正在使用 vscodewindows10 以及 python3.9.