我正在尝试安装对cvxopt的glpk支持,但是遇到了问题:cvxopt使用VS 2017,而我的glpk构建于VS2015。我正在使用命令“ python setup.py install”从源代码安装cvxopt 。在setup.py中,我添加了参数'BUILD_GLPK = 1'以安装具有gltk支持的软件包。 GLTK已经安装在我的机器上,并且在cvxopt的setup.py中指定了它的路径。还有一件事,我在计算机上安装了多个VS。现在我遇到的是在cvxopt安装期间python使用Built Tools 2017导致错误。我认为这是因为它默认使用VS 2017。有什么办法可以更改它,然后再次尝试setup.py?
非常感谢您的帮助和建议
答案 0 :(得分:0)
GLPK只能使用VS 15(Visual Studio 2015)构建。但是还有一个问题。如果尝试运行以下代码,程序将无法找到glpk
import cvxopt
c=cvxopt.matrix([0,-1],tc='d')
G=cvxopt.matrix([[-1,1],[3,2],[2,3],[-1,0],[0,-1]],tc='d')
h=cvxopt.matrix([1,12,12,0,0],tc='d')
(status, x)=cvxopt.glpk.ilp(c,G.T,h,I=set([0,1]))
但是,如果您首先使用cvxopt求解器,那么一切将顺利运行:
from cvxopt import matrix, solvers
A = matrix([ [-1.0, -1.0, 0.0, 1.0], [1.0, -1.0, -1.0, -2.0] ])
b = matrix([ 1.0, -2.0, 0.0, 4.0 ])
c = matrix([ 2.0, 1.0 ])
sol=solvers.lp(c,A,b,solver='glpk')
print(list(sol['x']))
sol=solvers.lp(c,A,b)
print(list(sol['x']))
(status, x)=cvxopt.glpk.ilp(c,A,b,I=set([0,1]))
所以我会说在为cvxopt加载glpk时有一些错误。