You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CVXPY报err_missing_license_file(1008)错误解决咨询

问题根因

这个报错不是默认求解器搜索路径被篡改导致的,核心原因是中途中断的MOSEK安装留下了损坏的残留包:CVXPY启动时会自动扫描当前Python环境中所有已安装的兼容求解器,哪怕你不显式调用MOSEK,扫描到半安装状态的MOSEK时就会触发license校验逻辑,直接抛出错误。
之前重装CVXPY、重装MOSEK都没生效,是因为CVXPY的安装流程不会清理第三方求解器的残留文件,直接覆盖安装MOSEK也不会清除之前中断安装留下的错误环境变量配置。

修复步骤

按优先级从高到低尝试以下操作:

  • 彻底清理损坏的MOSEK残留
    1. 打开你运行代码所用Python环境对应的终端(用Anaconda就开Anaconda Powershell Prompt,用原生Python就开系统命令提示符),依次执行卸载命令:
      pip uninstall -y mosek
      
      如果你之前用conda渠道装过MOSEK,额外执行:
      conda uninstall -y mosek
      
    2. 卸载完成后执行pip list | findstr mosek检查是否还有残留安装包,如果命令还有输出,就进入当前Python环境的Lib/site-packages目录,手动删除所有名称带mosek的文件夹。
    3. 打开系统环境变量编辑面板,删除所有变量名包含MOSEK的用户/系统环境变量(最常见的是MOSEKLM_LICENSE_FILE),同时检查PYTHONPATH变量,如果里面包含mosek相关路径也一并删除。
    4. 如果路径C:\Users\dsouv\mosek存在,直接把整个文件夹删除。
    5. 重启终端和代码编辑器,再运行原代码即可恢复正常。
  • 若后续需要使用MOSEK求解器,完成干净安装
    先按上面的步骤清完所有残留,再重新执行安装命令,确保进程全程运行不中断:
    pip install mosek
    
    安装完成后,将合法的MOSEK授权文件mosek.lic放到报错提示的默认路径C:\Users\dsouv\mosek\下,即可正常调用MOSEK求解。
  • 临时规避方案(不想卸载MOSEK时使用)
    在代码中显式指定求解器,跳过CVXPY的自动求解器扫描逻辑,示例:
    import cvxpy as cp
    # 省略你的优化问题建模代码
    # 求解时显式指定非MOSEK的可用求解器,比如SCS、ECOS、CVXOPT等
    problem.solve(solver=cp.SCS)
    
    注意不要在solve()方法中留空solver参数,留空时CVXPY会自动扫描所有可用求解器,还是会触发MOSEK的license报错。

内容的提问来源于stack exchange,提问作者Souvikd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:01:10