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