VScode中Python与Gurobi的安装与调用详解:常见问题及解决方案指南

引言

楼主发现使用python+gurobi的调配教程中,常见的安装方式是调用steup.py一键安装。但很不幸的是,至少在gurobi11之后的版本中(楼主只用过11,不清楚更早版本),官方移除了该文件内容,并留下了备注如图:

好吧,还剩有pip或者conda,但我都下载好了gurobi了,干嘛要去再下一个包呢。而且由于经常帮助师弟师妹们调配,于是就催生出了发文的动力,把经验分享给大家。

Gurobi的学术许可申请以及安装

首先进入其英文官网,The Leader in Decision Intelligence Technology – Gurobi Optimization,在这里我们要进行gurobi本体的安装以及学术许可证的申请。

Gurobi的学术许可申请

进入官网后点击右上角登入:

没有账户?免费注册一个吧~

注册时不需要使用学术邮箱,普通的163,qq都可以。需要注意的是所在地需要是你的学校所在地(如果你想申请学术许可证的话):

如实填写你的信息,学校检索时注意用英文

最后一步需要注意:

1.密码需要包含大小写,特殊字符。

2.如果你用的是校园网,请立刻切换到其他网络(手机热点就行),如果有代理也请关闭,否则有概率出现网络错误,如图:

假设现在你已经登入成功了!请你立刻切换为校园网,因为我们要进行学术许可证的申请。

1.点击右上角自己的名字,进入用户中心(User Portal)

2.点击左侧Licenses

3.点击左侧Request

4.点击academic

5.现在就申请一个!

在校园网的连接下,会直接申请成功。如果失败则会显示ip并非学术指定ip,请重新检查网络设置,关闭加速器,代理等(实在不行换台电脑试试)。

申请成功的标志就是会有一串编码,留着等会儿有大用处。不用特意记住,因为你可以随时到用户中心的Licenses界面中查看你已有的许可。

Gurobi的安装

点击最上方的按钮,进入下载界面:

并下滑到该位置:

进行愉快的下载:

正常情况下默认安装即可。如果你的C盘真的是一点点空间都没了,那移至其他盘也是可以的,但是在激活时会麻烦一步。等待安装完成,完成后先不要着急重启:

现在假设你成功的安装了Gurobi~

Gurobi的激活

老规矩,键盘 Windows键 + r键 ,输入cmd 并确定(请忽略此处图片套娃)

还记得你刚刚的那一串编码吗?他就是你的激活码,如果你是默认安装,那么直接复制进去,敲一下回车键即可。此时蓝框表示进程,随后会出现红框所在问询:你想把这个许可证文件放在那里?没有特殊要求,回车键默认即可。​​​

此时有两个注意事项(坑)

1.如果您把gurobi安装到了其他位置,激活时请标明他的位置所在地,您的激活编码应该是“Gurobi的安装位置”+“你的编码”。如何修改cmd中的命令前缀(切换到命令位置),请翻阅其他帖子。

2.如果您把许可文件放到了一个指定位置而非默认,请一定要记住他在哪!当一年后您的许可证过期,此时您会申请一个新的许可证并重新激活,如果老许可证文件没有删掉或者被顶替掉,那么gurobi仍然会选用老许可文件,即会提示您过期(哪怕新许可证被激活)。

此时激活完成~

Python指定版本的安装与适配

本章讲解python的安装与调试,使其能运行gurobi。(加这一句是因为我的导师们告诉我each title下都要有一小段文字进行描述)

Python指定版本的安装

打开gurobi的安装文件,打开win64,发现有一个文件夹叫做python311有木有?这是人家官方在提醒咱们,该版本的gurobi需要搭配3.11版本的python来使用(没错其他的都不行,不要再问我下载的python明明是最新的为啥不行呀)。

进入python官网下载中心,Python Releases for Windows | Python.org,随便找一个3.11的安装即可,比如我这里下一个3.11.9:

默认安装即可,按自己的需求选取不同选项也可以,安装:

还是那句话,别急着重启!

Python与Gurobi的适配

首先打开您的gurobi文件所在位置,依次点击win64-python311-lib,此时有一个叫gurobipy的文件夹,我们无情地把它复制一下:

其次,打开刚刚下载好的python的文件所在地,依次点击Python311-Lib,并把刚刚复制来的gurobipy文件夹粘贴进去:

大功告成,省去了通过pip等方式的下载时间~

VScode的安装与适配

本章讲述了如何安装vscode以及如何在其中运行py文件。

VScode的安装

搜索,进入官网,下载,非常简单:

等待安装:

别急着重启!(咋感觉说了一次)

VScode与python的适配

首先在扩展处,下载两个比较关键的扩展,一个Chinese简体中文的语言包,一个是python的包,直接在搜索框里搜索下载即可:

我们在文件处打开(或新建)一个文件夹作为我们的工作区,写入一个文件

test.py如何,做一个测试看看能不能正常运行gurobipy:

请注意,如果您的电脑包含多个python,请在右下角红框标注内的选择中,选取我们在前文中一直进行操作的那个python(即包含gurobipy文件夹的那个),比如刚刚演示的就是放在C盘内的python-3.11.9,所以在这里我就要选取他来运行文件。

下边给出一个简单的测试代码:

import gurobipy as gp
from gurobipy import GRB

try:
    # 创建一个新的模型
    m = gp.Model("simple_lp")

    # 创建变量
    x = m.addVar(name="x")
    y = m.addVar(name="y")

    # 设置目标函数
    m.setObjective(x + 2 * y, GRB.MAXIMIZE)

    # 添加约束条件
    m.addConstr(x + y <= 4, "c0")
    m.addConstr(2 * x + y <= 5, "c1")
    m.addConstr(x >= 0, "c2")
    m.addConstr(y >= 0, "c3")

    # 优化模型
    m.optimize()

    # 输出结果
    if m.status == GRB.OPTIMAL:
        print('最优解已找到:')
        print(f'x = {x.x}')
        print(f'y = {y.x}')
        print(f'目标函数值 = {m.objVal}')
    else:
        print('未找到最优解,状态码: ', m.status)

except gp.GurobiError as e:
    print('Gurobi 错误发生: ' + str(e))
except AttributeError:
    print('属性错误发生')

发现报错了?不要慌,现在可以重启了!

重启之后再次运行,成功找到最优解,搞定~

感谢观看

欢迎留言讨论,博主可能会不定期瞅瞅有没有什么疑难杂症,拜拜!

作者:lilalalalabo

物联沃分享整理
物联沃-IOTWORD物联网 » VScode中Python与Gurobi的安装与调用详解:常见问题及解决方案指南

发表回复