我正在开发一个 R 包,并希望在后台运行正在开发的包中的一些功能,使用callr::r()
或callr::r_bg()
.
例如,我创建了一个只有一个功能的包mytest
hello <- function() {
print("Hello, world!")
}
然后用 加载包pkgload::load_all()
,使用devtools包加载开发中的包的功能。之后,我可以在控制台中运行该功能,但不能在后台使用callr::r()
.
callr::r(function(){
mytest::hello()
})
#> Error: callr subprocess failed: there is no package called 'mytest'
#> Type .Last.error.trace to see where the error occurred
另一方面,如果我安装包并运行library(mytest)
,上面的代码运行没有问题
callr::r(function(){
mytest::hello()
})
#> [1] "Hello, world!"
请,任何线索为什么callr::r()
找不到功能mytest::hello()
?
看起来load_all()
没有将路径添加到可以找到包mytest的源代码的文件夹中。