基于poetry管理python项目学术版gurobipy WSL安装方式
这里写目录标题
- 配置步骤
- 1. 安装 Gurobi Optimizer 主程序
- 2. 配置 License 文件
- 3. 验证安装和许可是否生效
- 4. 编写并运行一个简单示例
- 3种学术版本的区别
在poetry中安装gurobipy后有许可限制,运行大规模问题报错如下,需要申请许可。
sop-mac-0513-py3.12pengkangzhen@192 sop_mac_0513 % /Users/pengkangzhen/Library/Caches/pypoetry/virtu
alenvs/sop-mac-0513-98gt8fhf-py3.12/bin/python /Users/pengkangzhen/Documents/code/sop_mac_0513/manua
l/main.py
Restricted license - for non-production use only - expires 2026-11-23
Gurobi Optimizer version 12.0.2 build v12.0.2rc0 (mac64[arm] - Darwin 24.4.0 24E263)CPU model: Apple M4
Thread count: 10 physical cores, 10 logical processors, using up to 10 threadsTraceback (most recent call last):File "/Users/pengkangzhen/Documents/code/sop_mac_0513/manual/main.py", line 382, in <module>model, s, x, z, y, r = main(^^^^^File "/Users/pengkangzhen/Documents/code/sop_mac_0513/manual/main.py", line 296, in mainmodel.optimize()File "src/gurobipy/_model.pyx", line 903, in gurobipy._model.Model.optimize
gurobipy._exception.GurobiError: Model too large for size-limited license; visit https://gurobi.com/unrestricted for more information
配置步骤
在完成了 WLS Academic 许可申请并在你的 macOS Python 环境中安装好 gurobipy
之后,接下来的关键步骤是:
1. 安装 Gurobi Optimizer 主程序
即便你已经能在 Python 中 import gurobipy
,你仍需安装 Gurobi 的核心二进制和工具集:
- 到 Gurobi 官网(https://www.gurobi.com/downloads/gurobi-optimizer-eula/)下载适用于 macOS 的 Gurobi 安装包。
- 双击下载的
.pkg
,一路“继续”“同意”完成安装。 - 默认情况下,Gurobi 会安装到
/Library/gurobi910/
(取决于版本号)目录下。
2. 配置 License 文件
Gurobi Academic 许可通常以一个 gurobi.lic
文件形式提供,你需要把它放到你的 home 目录下一个特定位置:
mkdir -p ~/gurobi
cp /path/to/gurobi.lic ~/gurobi/gurobi.lic
然后在你的 shell 配置文件(如 ~/.bash_profile
或 ~/.zshrc
)中添加:
export GUROBI_HOME="/Library/gurobi910" # 根据你的实际安装路径调整版本号
export GRB_LICENSE_FILE="$HOME/gurobi/gurobi.lic"
export PATH="${GUROBI_HOME}/bin:${PATH}"
export DYLD_LIBRARY_PATH="${GUROBI_HOME}/lib:${DYLD_LIBRARY_PATH}"
保存后执行 source ~/.zshrc
(或 ~/.bash_profile
)来使其生效。
3. 验证安装和许可是否生效
打开一个新的终端或 Python 交互环境,依次执行:
import gurobipy
print(gurobipy.gurobi.version())
如果能正确输出版本号(如 ('9', '1', '0', '')
)且没有报许可错误,说明安装和授权都已正确配置。
4. 编写并运行一个简单示例
确保一切正常后,用一段最简的线性规划模型来测试:
import gurobipy as gp
from gurobipy import GRB# 创建模型
m = gp.Model("test")# 添加变量
x = m.addVar(name="x")
y = m.addVar(name="y")# 设置目标
m.setObjective(2*x + 3*y, GRB.MAXIMIZE)# 添加约束
m.addConstr(x + y <= 10, "c0")
m.addConstr(x - y >= 3, "c1")# 求解
m.optimize()# 输出结果
for v in m.getVars():print(f"{v.varName} = {v.x}")
print(f"Obj = {m.objVal}")
在终端运行上述脚本,如果能看到最优解并且没有任何错误提示,就说明你的 Gurobi Python 接口和许可一切就绪。
3种学术版本的区别
Named-User Academic、WLS Academic 和 Take Gurobi With You 是 Gurobi 提供的不同类型的学术许可和服务,主要区别如下:
-
Named-User Academic
Named-User Academic 是一种学术用途的个人许可证,适用于学生或研究人员在学术环境中使用 Gurobi。这种许可证的有效期通常为一年,并且需要通过注册 Gurobi 账号来申请 。 -
WLS (Web License Service) Academic
WLS Academic 允许用户在任意环境中运行 Gurobi 优化器,包括本地机器或容器环境。与 Named-User 不同的是,WLS 更适合需要灵活部署和分布式计算的场景。它也属于学术用途的免费许可证 。 -
Take Gurobi With You (TGWY)
Take Gurobi With You 是一项特别针对毕业生的计划。通过这个计划,毕业生可以在毕业后继续免费使用 Gurobi,而无需受限于学术用途 。这项服务旨在帮助新毕业生在职业生涯开始时继续使用他们熟悉的工具 。