使用非默认Visual Studio的cvxopt自定义安装

2024-05-13 18:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为cvxopt安装glpk支持,但遇到了一个问题,cvxopt使用的是vs2017,而我的glpk是基于vs2015构建的。我正在使用命令python从源代码安装cvxopt设置.py安装'。在设置.py我添加了参数'BUILD\u GLPK=1'来安装支持gltk的包。GLTK已经安装在我的机器上,其路径在中指定设置.pycvxopt的。还有一件事,我的电脑上安装了几个虚拟机。现在我遇到的是,在cvxopt安装过程中,python使用构建工具,这会导致错误。我认为这是因为它使用VS2017作为默认值。有什么办法可以改变它并尝试一下吗设置.py再一次?你知道吗

非常感谢您的帮助和建议


Tags: py命令build路径机器参数源代码glpk
1条回答
网友
1楼 · 发布于 2024-05-13 18:59:19

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时有一些bug。你知道吗

相关问题 更多 >