我目前正在构建一个R软件包,称其为。我使用
在我的本地计算机上,vignette中的所有代码块都可以无错误运行,即使重新启动R并清除工作区也是如此。然而,当我尝试使用devtools::build()构建软件包时,构建失败,出现以下错误:
我猜测这是因为该软件包本身不存在于我的 R 库中。在开发时,我仅使用
我已经看到其他软件包文档直接使用
我希望读者可以在没有完整可复制示例的情况下进行评估;复制整个示例很困难,因为它需要一个完整的 R 软件包目录结构,在这里很难复制或共享。
devtools::use_vignette("my-vignette")
生成了一个软件包文档,并填充了my-vignette内容。当然,因为这是一个软件包文档,我需要演示该软件包本身所包含的函数和数据的使用。但是,在编织vignette时,我遇到了加载软件包及其内容的问题。在我的本地计算机上,vignette中的所有代码块都可以无错误运行,即使重新启动R并清除工作区也是如此。然而,当我尝试使用devtools::build()构建软件包时,构建失败,出现以下错误:
Error in library(mypackage): there is no package called `mypackage` Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> library Execution halted
从devtools::build()
在控制台中的完整输出如下:* checking for file ‘/path/to/mypackage/DESCRIPTION’ ... OK
* preparing ‘mypackage’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Quitting from lines 39-44 (my-vignette.Rmd)
Error: processing vignette 'my-vignette.Rmd' failed with diagnostics:
'my_function' is not an exported object from 'namespace:mypackage'
Execution halted
devtools::document()运行无误,但是devtools::build_vignettes()似乎遇到了不同的错误,它无法使用特定的函数(但似乎能够加载包本身):
> devtools::build_vignettes()
Building mypackage vignettes
Moving basic-mypackage-vignette.html, basic-mypackage-vignette.R to inst/doc/
Copying basic-mypackage-vignette.Rmd to inst/doc/
> devtools::build()
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet CMD build \
'/path/to/mypackage' --no-resave-data --no-manual
* checking for file ‘/path/to/mypackage/DESCRIPTION’ ... OK
* preparing ‘auctestr’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Quitting from lines 39-44 (my-vignette.Rmd)
Error: processing vignette 'my-vignette.Rmd' failed with
diagnostics:
could not find function "my_function"
Execution halted
Error: Command failed (1)
> devtools::document()
Updating mypackage documentation
Loading mypackage
我猜测这是因为该软件包本身不存在于我的 R 库中。在开发时,我仅使用
devtools::load_all()
加载该软件包。如何解决这个问题并加载我的软件包以便在软件包文档中使用其函数和数据?具体来说,我应该如何使软件包及其函数在 knitr 用于编译文档的环境中可用?我已经看到其他软件包文档直接使用
library()
载入软件包而没有问题,例如 stringr 文档。我希望读者可以在没有完整可复制示例的情况下进行评估;复制整个示例很困难,因为它需要一个完整的 R 软件包目录结构,在这里很难复制或共享。
#' @export
) - fmic_