如何使用 R reticulate 安装 gekko 包?

How can I install gekko package using R reticulate?

我无法通过 R reticulate 安装 gekko 包。我的 R 版本是 3.4.4,我的 Python 版本是 3.8.8,我在 Python 中使用 Gekko 没有问题。所以我尝试以我知道的这两种方式在 R 上安装:

  1. py_install("gekko")

  2. 网状::conda_install("my_conda_environment", "gekko")

然而,在这两种情况下,我都收到以下相同的错误。

PackagesNotFoundError:当前渠道不提供以下软件包:

当前频道:

我没有在 Anaconda 文档中找到其他选择。我该如何解决这个问题?

编辑:我根据John Hedengren的回答和reticulate docs中的参考资料解决了我的问题。为此,我需要创建一个新环境以在 R 中使用以下代码指定 Python 版本和包:

reticulate::py_install(
    packages = c(
        "numpy",  
        "pandas", # Or another packages that you need
        "gekko"
    ),
    envname  = "r-gekko",
    method = "conda", # On Windows, the 'conda' method is always used
    python_version = "3.8.8",
    pip = TRUE # It's mandatory to install gekko
)

Gekko 可从 pypi.org 和 pip install gekko 获得,但不适用于 conda install gekko 的 conda 包管理器。这里有更多关于 how to install Python packagespip 的信息。您可能已经知道这一点,因为您在 Python 中使用 gekko,但我将其包含在此处以备不时之需。

两个潜在的问题是:

  • 安装了多个 Python 版本,gekko 未安装与 R 一起使用的版本。
  • Reticulate 没有使用 PyPi 存储库来安装 gekkoadditional information 管理源(Conda 或 PyPi)以检索包。

我对 R 不熟悉,但其他人也有类似的问题,例如:

  • Error when installing package from PyPi in R using reticulate and Anaconda3
  • reticulate conda_install fails to install package from PyPI

在类似情况下寻求帮助的更一般的答案:

  1. 在 R 的新环境中安装 gekko 和其他包。
reticulate::py_install(
    packages = c(
        "gekko",
        "other_package==x.x.x", # It's possible to specify the package version 
        ... 
    ),
    envname = "new_env",
    method = "conda", # For Windows
    python_version = "3.x.x",
    pip = TRUE
)
  1. 使用新环境调用 reticulate 包。
Sys.setenv(RETICULATE_PYTHON = "/Users/user_name/anaconda#/envs/new_env/python.exe")
library(reticulate)
  1. 运行 你的 Python R 中带有 gekko 的脚本
source_python("path/script.py")