依赖包" package_name"无法使用

时间:2015-10-30 03:13:14

标签: r devtools

我在尝试在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 

4 个答案:

答案 0 :(得分:4)

取消选择项目选项中的圆圈选项&gt;构建工具对话解决了这个问题,虽然我不清楚为什么:

enter image description here

答案 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版本中构建的,因此发生了错误。因此解决方案是重新安装秤。

因此,您可以尝试重新安装ggp​​lot2软件包的所有依赖项。