无法在 R 中将 python 用于 Modeltime.gluonts

Unable to use python for Modeltime.gluonts in R

我正在构建一个 docker 图像,它将在 R 中包含 modeltime.gluonts 库。

我在 docker 文件中使用以下命令安装了 miniconda:

RUN R -e "reticulate::install_miniconda('/home/rstudio/miniconda/'); Sys.setenv(RETICULATE_MINICONDA_PATH = '/home/rstudio/miniconda/'); q(save = 'no')"

但是每当我尝试加载 modeltime.gluonts 库时,它都会抛出以下错误:

> library(modeltime.gluonts)
Loading required package: modeltime
Could not detect any Conda Python Environments with `reticulate::conda_list()`. Conda is required for 'modeltime.gluonts'. Try using `reticulate::install_miniconda()`.

其实镜像上已经准备好了conda环境:

> library(reticulate)
> conda_list()
          name                                               python
1 r-reticulate /home/rstudio/miniconda/envs/r-reticulate/bin/python
> conda_binary()
[1] "/home/rstudio/miniconda/bin/conda"
> conda_python()
[1] "/home/rstudio/miniconda/envs/r-reticulate/bin/python"
> conda_version()
[1] "conda 4.9.2"
> py_config()
python:         /home/rstudio/miniconda/envs/r-reticulate/bin/python
libpython:      /home/rstudio/miniconda/envs/r-reticulate/lib/libpython3.6m.so
pythonhome:     /home/rstudio/miniconda/envs/r-reticulate:/home/rstudio/miniconda/envs/r-reticulate
version:        3.6.12 | packaged by conda-forge | (default, Dec  9 2020, 00:36:02)  [GCC 9.3.0]
numpy:          /home/rstudio/miniconda/envs/r-reticulate/lib/python3.6/site-packages/numpy
numpy_version:  1.19.4

python versions found: 
 /home/rstudio/miniconda/envs/r-reticulate/bin/python
 /home/rstudio/miniconda/bin/python3
 /usr/bin/python3
 /home/rstudio/miniconda/bin/python

我尝试了以下方法:

  1. Change miniconda location
  1. Install miniconda by directly downloading from the terminal.
  1. Sys.setenv(GLUONTS_PYTHON = 'path/to/python')
  1. modeltime.gluonts::install_gluonts()

我正在使用 rocker/verse 基本图像。

我不知道是什么导致了这个错误。 有人可以帮我解决这个问题吗?

每当我尝试使用 r-gluonts 环境时,它都没有被设置为默认值。 Reticulate 仍将 r-reticulate 环境称为默认环境。

所以我不得不通过 conda 显式删除 r-reticulate 并为 GLUONTS_PYTHON="path/to/gluonts/enviroment"

设置路径

这对我有用:

reticulate::use_miniconda("~/Library/r-miniconda/envs/r-gluonts/bin/python")