1

我已经安装了 3 次 Mosek。它在 python 中工作,但 CVXR(r 包)函数 installed_solvers() 无法找到 MOSEK。 在此处输入图像描述

我正在研究 MACos Mojave。我通过 conda 命令安装了 Mosek,获得了学术许可证,在主目录中创建了一个名为 mosek 的文件夹并将许可证文件放入其中。然后我在 jupyter 实验室测试了以下脚本https://docs.mosek.com/8.1/pythonapi/design.html#hello-world-in-mosek并得到结果 Solution x = 2.0 ,所以 Mosek 正在工作。然后我安装了reticulate,使用默认目录,将其替换为use_python("/Users/apple/anaconda3") 和use_python("/Users/apple/anaconda3/lib/python3.6") 在其中任何一个中,函数installed_solvers () 找到了 mosek。我的会话信息如下 在此处输入图像描述

https://cvxr.rbind.io/cvxr_examples/cvxr_using-other-solvers/中的文档并没有真正说明如何解决问题。有人找到解决方案了吗?谢谢

4

1 回答 1

6

我能够复制,不幸的是错误非常沉默。但是基于源代码https://rdrr.io/cran/CVXR/src/R/mosek-solver.R,我尝试了所有要求

reticulate::py_module_available(module = "numpy")
reticulate::py_module_available(module = "scipy.sparse")
reticulate::py_module_available(module = "mosek")

发现我实际上在我的 Python 环境中缺少 scipy。安装后,它按记录工作..

如果这对您没有帮助,请尝试手动导入求解器:

msk = MOSEK()
import_solver(msk)

看看这会导致什么。

于 2019-02-05T13:19:20.190 回答