如何使用 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 包?的主要内容,如果未能解决你的问题,请参考以下文章