在构建r包时附加python脚本

2024-06-07 08:50:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我还没有为我的任务找到一些R包(相信我,没有人),但python中有一个。所以我编写了python脚本,并在一些函数中使用了reticulaye::py_run_file('my_script.py')。但在构建和安装之后,包找不到该脚本。我应该把这个脚本放在哪里,以便在安装后直接从包中使用它。还有一件事,我需要安装minicondareticulate::install_miniconda()。有人知道在install.package命令后自动安装它的方法吗


Tags: install方法函数runpy命令脚本package
1条回答
网友
1楼 · 发布于 2024-06-07 08:50:10

通常非R代码位于./inst/python/your_script.py(对于JS等也是如此)。inst文件夹中的任何内容都将被安装到包的根目录中,不会发生任何更改

要在程序包函数中调用这些文件,请使用以下命令:

reticulate::py_run_file(system.file("your_script.py", package = "yourpkg"))

见:http://r-pkgs.had.co.nz/inst.html


对于第二个问题,您应该在安装任何东西之前提示用户,但是您通常会在一个名为.onLoad的特殊函数中使用参数libnamepkgname调用任何外部安装程序。这是一个在调用library(yourpkg)时自动执行的函数

.onLoad <- function(libname, pkgname) {
  user_permission <- utils::askYesNo("Install miniconda? downloads 50MB and takes time")

  if (isTRUE(user_permission)) {
    reticulate::install_miniconda()
    } else {
    message("You should run `reticulate::install_miniconda() before using this package")
   }
}

您可以将此函数放入任何包R文件中

相关问题 更多 >

    热门问题