你能通过 R 安装一个 Python 包吗 - Reticulate

Can you install a Python package via R - Reticulate

我将要在 R 中使用包 Reticulate 创建一个 python 界面。为了访问 R 中的 python 函数,需要安装相应的 python 包。

我想到了两个问题:

1) 如果使用reticulate包,需要安装Anaconda包吗?还是仅安装 python 个软件包就足够了?

2) 是否可以在 R 中安装 python 包,类似于 install.packages("r_package")?

有人有这方面的经验吗?提前致谢!

1) R 包 reticulate 可以使用默认的 python 或 Anaconda2Anaconda3。如果你想让 Anaconda 与 R 一起工作,你必须先安装 Anaconda。安装后,调用 library(reticulate) 和 运行 py_config()reticulate::py_discover_config(),这将为您提供 Python 安装使用的路径和环境列表。然后,一旦您知道了 Python 路径,就可以在 library(reticulate) 之后添加这样一行 use_python("/opt/miniconda2/bin/python"),您就可以开始工作了。

2) 要安装 Python 包以便 R(或网状)可以看到它们,您必须从终端或控制台将它们作为常规 Python 包安装;不是 R。示例:conda install numpy 安装 numpy,或 conda install scipy 安装 scipy,等等。

我只是在 Docker 容器 rocker/rstudio 中完成所有这些工作。在标准 OS.

中应该更容易

这里是分步说明:rstudio reticulate

干杯!

我将在之前的答案中添加一些细微差别。

正如@f0nzie 所说,Anaconda 不是一个包,而是一个包管理器。理想情况下,您将使用 Anaconda 创建一个环境来协助您进行包管理和版本控制。 conda 环境的文档是 here.

现在,您可以将 python 包安装到 R 中的 anaconda 包中。这可以使用 reticulate::conda_install(envname, packages)conda_install() 的文档可以在 here.

中找到

如果您需要特定版本的 Python 模块,请在模块名称后放置 ==,例如以下将使用 pip 安装 3 个模块的特定版本:

reticulate::conda_install(c("PyMuPDF==1.14.20", "PyPDF2==1.26.0", "reportlab==3.5.23"),
                            envname = "myenv", pip = TRUE)