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('属性错误发生')

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

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

感谢观看

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

### 如何在 VSCode 中配置和使用 Gurobi #### 安装 Gurobi 库 为了能够在 VSCode 中成功配置并使用 Gurobi,首先需要确保已经正确安装Gurobi 的库。这通常意味着已经在计算机上完成了 Gurobi安装过程,并获取到了有效的许可证。 对于那些希望利用 Anaconda 来管理环境的用户而言,在 Anaconda 提供的 Python 环境下配置 Gurobi 是相对简单的操作之一。可以通过复制 `gurobipy` 文件夹至 Anaconda 安装路径中的 `Lib/site-packages` 下完成基本集成工作[^4]。 #### 设置开发环境 当准备好了必要的软件包之后,则需进一步设置好 IDE——即 Visual Studio Code (简称 VSCode),以便能够顺利地编写以及运行含有 Gurobi API 调用的应用程序: - **创建新项目**:启动 VSCode 并建立一个新的 C++ 工程; - **引入依赖项**:编辑 `.vscode/settings.json` 或者通过图形界面添加编译参数来指定包含路径与链接选项,从而让编译器知道去哪里寻找 Gurobi 头文件及其对应的静态/动态链接库; 对于 C/C++ 用户来说,应该向工程中加入如下所示的头文件声明: ```cpp #include <gurobi_c++.h> ``` - **调整构建任务**:依据所使用的操作系统平台不同而有所差异,但一般情况下都需要修改项目的 Makefile 或其他形式的任务定义文件,使得最终生成可执行文件时能正确关联到 Gurobi 的 .lib/.dll 文件。 #### 编写测试代码验证配置有效性 最后一步就是尝试着去实现一段简易线性规划问题求解的小例子作为检验手段,比如下面这段用于解决最小化成本运输问题的伪代码片段: ```cpp // 测试.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <gurobi_c++.h> using namespace std; int main() { try { GRBEnv env = GRBEnv(true); env.set("LogFile", "test.log"); env.start(); GRBModel model(env); // Create variables GRBVar x = model.addVar(0.0, 1.0, 0.0, GRB_BINARY, "x"); // Set objective: maximize x model.setObjective(x, GRB_MAXIMIZE); // Add constraint: x >= 0.5 model.addConstr(x >= 0.5, "c0"); // Optimize model model.optimize(); cout << x.get(GRB_StringAttr_VarName) << " " << x.get(GRB_DoubleAttr_X) << endl; cout << "Obj: " << model.get(GRB_DoubleAttr_ObjVal) << endl; // Clean up model.reset(); env.reset(); } catch (GRBException e) { cout << "Error number: " << e.getErrorCode() << endl; cout << e.getMessage() << endl; } catch (...) { cout << "Exception during optimization" << endl; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值