ValueError: "MosekSolver不能Solve,因为MosekSolver::available()为false,即MosekSolver尚未被编译为此二进制文件的一部分。有关如何编译它,请参阅MosekSolver类概述文档。">
嗨,我得到了上面的错误时,试图在德雷克使用Mosek求解器。我不清楚如何在Deepnote和Drake中启用Mosek。我需要在Dockerfile或init文件中包含一些东西吗?如有任何建议,我将不胜感激。
链接我看:https://drake.mit.edu/pydrake/pydrake.solvers.mosek.htmlhttps://drake.mit.edu/bazel.html mosek
Mosek+Drake确实在Deepnote上工作。工作流程如下:
- 获取Mosek license文件(从Mosek网站获取),并上传到Deepnote
- 设置一个环境变量,告诉Drake在哪里可以找到许可证文件。例如,您可以在笔记本的顶部添加以下内容:
import os
os["MOSEKLM_LICENSE_FILE"] = "mosek.lic"
现在MosekSolver.available()
应该是True
,如果你简单地调用Solve(prog)
, Mosek甚至会被选为默认的首选解算器。
注意:请非常小心不要与您的mosek共享Deepnote笔记本。地方政府投资公司上传。