我的R包中有一个函数需要编译位于pkg/extdata
的外部库。由于它是从某个目录编译的,我使用setwd()
转到该目录,然后在安装后返回到之前保存的目录。
奇怪的是,这个函数的测试(使用testthat)在本地失败但在travis ci ubuntu:16.04容器/ VM(与我的相同)上没有。要查找和更改目录(在extdata
中),请执行以下操作:
pkg_source <- system.file('extdata/pkg_lib', "src", package = "pkg")
odir <- getwd()
setwd(pkg_source)
输出错误是:
test_it.R:4: failure: Test install_it
`install_it()` threw an error.
Message: cannot change working directory
Class: simpleError/error/condition
我的想法是安装软件包的文件夹有一些限制,但如果你认为不需要sudo权限并且服务器顺利进行,这是不合逻辑的。
如果有帮助,我的lib路径为.libPaths()
[1] "/home/uuuser/R/x86_64-pc-linux-gnu-library/3.4" "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" "/usr/lib/R/library"
答案 0 :(得分:0)
通常,您不必更改包中的工作目录。您是否可以通过使用从现有文件位置加载或来源的包数据来避免错误?