如何使用 R reticulate 安装 gekko 包?

Posted

技术标签:

【中文标题】如何使用 R reticulate 安装 gekko 包?【英文标题】:How can I install gekko package using R reticulate? 【发布时间】:2022-01-13 23:10:55 【问题描述】:

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

    py_install("gekko")

    reticulate::conda_install("my_conda_environment", "gekko")

但是,在这两种情况下,我都会收到以下相同的错误。

PackagesNotFoundError:当前频道无法提供以下软件包:

壁虎

当前频道:

https://conda.anaconda.org/root/win-64 https://conda.anaconda.org/root/noarch https://repo.anaconda.com/pkgs/main/win-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/win-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/msys2/win-64 https://repo.anaconda.com/pkgs/msys2/noarch

我没有在 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
)

【问题讨论】:

【参考方案1】:

Gekko 可以从 pypi.org 获得,pip install gekko,但不能通过 conda 包管理器获得,conda install gekko。这里有更多关于how to install Python packages 和pip 的信息。您可能已经知道这一点,因为您在 Python 中使用了 gekko,但我将它包含在此处作为一些背景知识,以防其他人需要它。

两个潜在的问题是:

安装了多个 Python 版本,而与 R 一起使用的版本没有安装 gekko。 Reticulate 未使用 PyPi 存储库安装 gekko。这是additional 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 Error while installing Python module in R via reticulate How to install packages in conda that are not available in anaconda

【讨论】:

【参考方案2】:

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

    在 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
)
    使用新环境调用 reticulate 包。
Sys.setenv(RETICULATE_PYTHON = "/Users/user_name/anaconda#/envs/new_env/python.exe")
library(reticulate)
    在 R 中使用 gekko 运行 Python 脚本。
source_python("path/script.py")

【讨论】:

以上是关于如何使用 R reticulate 安装 gekko 包?的主要内容,如果未能解决你的问题,请参考以下文章

AkShare-使用教程-R语言调用数据接口

服务器安装新版本R及Seurat方法

在R中使用带有网格包的Python - 找不到Numpy

如何暂停 R 脚本,直到下载文件?

reticulate, virtualenv, and Python in Linux

pyomo + reticulate 错误6句柄无效