如何在 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']
看来一切都很好。
我正在使用 vscode
和 windows10
以及 python3.9
.
我正在尝试使用 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']
看来一切都很好。
我正在使用 vscode
和 windows10
以及 python3.9
.