尝试在 RStudio 中构建和重新加载时出现奇怪的错误。在我的描述文件中,我包含了一个我在组织内构建和维护的包。它不在 CRAN 上。本质上,当我更新说明文件(取决于:...)时,我收到此错误:
==> devtools::document(roclets=c('rd', 'collate', 'namespace', 'vignette'))
Updating fczstudy documentation
Loading fczstudy
Error in (function (dep_name, dep_ver = NA, dep_compare = NA) :
Dependency package surv3 not available.
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_depends -> mapply -> <Anonymous>
Execution halted
在这种情况下,surv3
是我在组织内维护的一个软件包 - 我可以确认它确实已安装,因为我正在使用它。
CRAN 的其他软件包似乎不会发生这种情况。事情是几天前才开始的。它不允许我导入我的包(surv3)
我真的不知道如何调试这个。
traceback()
在 ctrl+shift+B 后的控制台中没有返回任何内容
这是我的sessionInfo()
:
R version 3.2.0 (2015-04-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] surv3_1.01 knitr_1.11 fczstudy_0.1.0 dplyr_0.4.3
[5] ggplot2_1.0.1
loaded via a namespace (and not attached):
[1] Rcpp_0.12.1 assertthat_0.1 digest_0.6.8
[4] MASS_7.3-40 R6_2.1.1 grid_3.2.0
[7] plyr_1.8.3 gtable_0.1.2 DBI_0.3.1
[10] magrittr_1.5 scales_0.3.0 stringi_0.5-5
[13] lazyeval_0.1.10 reshape2_1.4.1 rmarkdown_0.8.1
[16] proto_0.3-10 tools_3.2.0 stringr_1.0.0
[19] munsell_0.4.2 yaml_2.1.13 parallel_3.2.0
[22] colorspace_1.2-6 htmltools_0.2.6
布兰登的解决方案对我不起作用。然而,我发现如果一个人跑document
加载包后,就不会抛出错误。此外,即使它抛出错误,它似乎仍在更新包。因此,可以通过以另一种顺序运行代码来解决这个问题。
我查看了源代码document
函数并追踪到错误消息requireNamespace
称呼。事实证明,包裹根本没有丢失,但有一个错误.onLoad
函数调用。这导致requireNamespace
回来FALSE
(无法加载包),就像未安装包一样。所以,真正的问题是来自的错误消息document
在这种特殊情况下是不正确的。
错误示例:
Browse[2]> requireNamespace("thepackage")
Loading required namespace: thepackage
Failed with error: ‘.onLoad failed in loadNamespace() for 'thepackage', details:
call: some_function(., some_variable)
error: could not find function "some_function"’
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)