构建 r 包时附加 python 脚本
Attaching python script while building r package
我还没有为我的任务找到一些 R 包(没有,相信我),但是 python 中有一个。所以我写了 python 脚本并在某些函数中使用了 reticulaye::py_run_file('my_script.py')
。但是在构建和安装之后,包找不到那个脚本。我应该把这个脚本放在哪里以便在直接从 package.json 安装后使用它?还有一件事,我需要安装 miniconda reticulate::install_miniconda()
。有谁知道在 install.package 命令后自动安装它的方法吗?
通常非 R 代码进入 ./inst/python/your_script.py
(同样适用于 JS 等)。 inst
文件夹中的任何内容都将原封不动地安装到包的根目录中。
要在您的包函数中调用这些文件,请使用类似:
reticulate::py_run_file(system.file("python", "your_script.py", package = "yourpkg"))
参见:http://r-pkgs.had.co.nz/inst.html
对于你的第二个问题,你应该在安装任何东西之前提示用户,但你通常会在一个名为 .onLoad
的特殊函数中调用任何外部安装程序,参数为 libname
和 pkgname
.这是调用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 文件中。
我还没有为我的任务找到一些 R 包(没有,相信我),但是 python 中有一个。所以我写了 python 脚本并在某些函数中使用了 reticulaye::py_run_file('my_script.py')
。但是在构建和安装之后,包找不到那个脚本。我应该把这个脚本放在哪里以便在直接从 package.json 安装后使用它?还有一件事,我需要安装 miniconda reticulate::install_miniconda()
。有谁知道在 install.package 命令后自动安装它的方法吗?
通常非 R 代码进入 ./inst/python/your_script.py
(同样适用于 JS 等)。 inst
文件夹中的任何内容都将原封不动地安装到包的根目录中。
要在您的包函数中调用这些文件,请使用类似:
reticulate::py_run_file(system.file("python", "your_script.py", package = "yourpkg"))
参见:http://r-pkgs.had.co.nz/inst.html
对于你的第二个问题,你应该在安装任何东西之前提示用户,但你通常会在一个名为 .onLoad
的特殊函数中调用任何外部安装程序,参数为 libname
和 pkgname
.这是调用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 文件中。