我创建了我的第一个R包,并有一个问题 .
包在我的计算机上成功运行 . 但是,如果我的用户(没有所需的软件包)运行我的软件包,他们将收到错误消息,说明所需的软件包不可用 . 当他们从CRAN手动安装该软件包时,我的软件包就可以运行了 .
根据Hadley Wickam的书(http://r-pkgs.had.co.nz/description.html):
导入:此处列出的软件包必须存在才能使您的软件包正常工作 . 事实上,无论何时安装软件包,这些软件包(如果尚未安装)都将安装在您的计算机上(devtools :: load_all()还会检查软件包是否已安装) .
我将所有必需的包放在 DESCRIPTION 的 Imports 字段中 . 怎么没有自动安装所需的包?我的用户在使用我的用户之前是否需要安装所有必需的软件包?
Additional background:
-
我在我的脚本中使用约定 package_name::function_name .
-
我将包作为二进制包分发 .
-
用户从其本地目录安装软件包,因此在调用install.packages时无法指定DEPENDENCIES = TRUE .
我做了什么:
-
阅读Hadley Wickham的书R Packages
-
阅读Imported packages do not auto-install和R package dependencies但未找到有关我的问题的任何信息 .
谢谢!
2 回答
你可以尝试使用
要么
但是,这个功能似乎存在一些问题,例如: https://github.com/r-lib/devtools/issues/1370
替代方案是使用链接问题中建议的
drat
.刚刚发现没有安装依赖项,因为我的软件包没有从CRAN repo安装 .
使用
devtools::install_local("pkgname.tar.gz")
将安装包和任何依赖项 .