matlab调用gurobi报错“User name mismatch”

起因是本人电脑需要用到python+gurobi的环境,所以先用anaconda安装了gurobi的python库,顺便注册了license。这几步是用电脑的admin账户操作的。

后来要用到matlab+gurobi的环境了,就重新到gurobi官网下载了gurobi optimizer,并且打开matlab把current folder定位到“……\gurobi\win64\matlab”目录下运行“gurobi_setup.m”,安装好gurobi的matlab界面。重启电脑。这几步是用电脑的另一个账户操作的。

本来以为完成这些配置后就能调用gurobi了,于是在下载了yalmip工具箱并添加到matlab路径后,在matlab命令行窗口输入“yalmiptest“这个命令后,虽然gurobi solver一行显示”found“,但是在最后solver message界面的LP、QP、SOCP和Infeasible LP、Infeasible QP却显示”Unknown problem in solver(Turn on 'debug' in sdpsettings)(Error using gurobi Gurobi error 10009: User name mismatch(licensed to 'admin', current user is 'XXX')“这一报错信息,如下图所示。

这时候才发现不同账户名的操作会导致这种问题,完全没想到,但由于没法切换到admin账户了,只能另寻方法。

所幸在Gurobi的帮助中心看到了Error 10009的解决方法(如下),因为我是用学校邮箱注册的个人用户许可证,所以我点击了”How do I transfer my free academic or free trial license to a different computer?“继续看指南。

 指南给出的解决方案是重新注册一个新的许可证

 所以在无法切换到admin账户的情况下,解决方法就是在现有账户下再重新注册一个许可证。出于侥幸,本人还尝试了在现有账户下的cmd中激活现有的许可证,发现也不可行,看来许可证是account-based的,不是基于设备的。

 于是重新申请了一个新的许可证,并且在cmd中完成了激活,添加了用户变量GUROBI_LICENSE_FILE。

然而又一个新的问题出现了,同一个设备存在两个gurobi.lic,两个GUROBI_LICENSE_FILE变量(一个是admin账户下添加的系统变量,一个是用另一个账户添加的用户变量)。重新打开Matlab用yalmiptest测试是否能成功调用gurobi,还是出现User name mismatch的问题。这可能是由于变量同名的情况下肯定优先使用系统变量的值的缘故,于是申请了管理员权限将系统变量的GUROBI_LICENSE_FILE改为GUROBI_LICENSE_FILE1,重新打开matlab,用yalmiptest命令测试后,发现成功了!又测试了几次不同的用户变量和系统变量的值后发现,只要系统变量名不是GUROBI_LICENSE_FILE,matlab就能成功调用gurobi,而此时用户变量是不是GUROBI_LICENSE_FILE并没有影响,有点神奇。这个原因就没有深究了,结局就是美美能用matlab+yalmip+gurobi环境coding了。

  至于后面在非admin账户使用python+gurobi会不会出现问题,后面如果遇到了再来分享~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值