你可以通过R - Reticulate安装Python包

时间:2017-06-15 12:24:03

标签: python r interface reticulate

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

我想到了两个问题:

1)如果使用网状包,是否需要安装Anaconda包?或者仅仅安装python包就足够了吗?

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

有没有人有过这个主题的经验?提前谢谢!

3 个答案:

答案 0 :(得分:4)

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

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

我只是在Docker容器rocker/rstudio中完成所有这些操作。在标准操作系统中应该更容易。

以下是分步说明:rstudio reticulate

干杯!

答案 1 :(得分:3)

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

就像@ f0nzie一样,Anaconda不是包,而是包管理器。理想情况下,您将使用Anaconda创建一个环境,以帮助您进行程序包管理和版本控制。有关conda环境的文档为here

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

答案 2 :(得分:0)

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

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