我在尝试在RStudio中构建和重新加载时遇到了一个奇怪的错误。在我的描述文件中,我已经包含了我在组织内构建和维护的软件包。它不在CRAN上。基本上,当我更新DESCRIPTION文件(取决于:...)时,我收到此错误:
==> 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)
我真的不确定如何调试它。
ctrl + shift + B后,控制台中的 traceback()
不返回任何内容
这是我的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
答案 0 :(得分:4)
答案 1 :(得分:4)
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"’
答案 2 :(得分:1)
当我遇到同样的问题时,它是由描述文件中的问题引起的。
以Depends:
开头的行在错误的情况下列出了依赖包(例如Ggplot2
而不是ggplot2
)
我希望您不再需要此修复程序,但它可能对其他人有用。
答案 3 :(得分:0)
另一种可能的解决方案是检查程序包相关性是否最新。我对ggplot2有同样的问题,当我尝试加载该软件包时,由于依赖包'scales'是在具有不同内部结构的R版本中构建的,因此发生了错误。因此解决方案是重新安装秤。
因此,您可以尝试重新安装ggplot2软件包的所有依赖项。