r语言 - devtools::check() -没有名为' Matrix '的包



我想为CRAN准备我的第一个包,但一直面临这个错误

在Rstudio中:


> devtools::check(args = c('--as-cran'))

误差是:


** byte-compile and prepare package for lazy loading
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
there is no package called ‘Matrix’
Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
ERROR: lazy loading failed for package 
1 error x | 0 warnings ✓ | 0 notes ✓
Error: R CMD check found ERRORs
Execution halted

当:

$ R CMD check pkgname*.tar.gz

一切正常,检查合格。

对于错误,我几乎尝试了所有可能的解决方案,如1、2、3、4、5、6等,但都没有成功。

sessionInfo()

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.1 LTS
Matrix products: default
BLAS:   /opt/microsoft/ropen/4.0.2/lib64/R/lib/libRblas.so
LAPACK: /opt/microsoft/ropen/4.0.2/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8       
[4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_US.UTF-8   
[7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] eumap_0.0.4          RevoUtils_11.0.2     RevoUtilsMath_11.0.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.5             paradox_0.7.0          lattice_0.20-41       
[4] listenv_0.8.0          prettyunits_1.1.1      ps_1.5.0              
[7] assertthat_0.2.1       rprojroot_1.3-2        digest_0.6.25         
[10] R6_2.4.1               ranger_0.12.1          backports_1.1.8       
[13] ggplot2_3.3.2          pillar_1.4.6           rlang_0.4.10.9000     
[16] uuid_0.1-4             rstudioapi_0.11        data.table_1.12.8     
[19] whisker_0.4            callr_3.5.1            raster_3.3-7          
[22] Matrix_1.2-18          checkmate_2.0.0        mlr3spatiotempcv_0.1.1
[25] devtools_2.3.0         desc_1.2.0             stringr_1.4.0         
[28] munsell_0.5.0          compiler_4.0.2         xfun_0.15             
[31] pkgconfig_2.0.3        pkgbuild_1.1.0         globals_0.12.5        
[34] tidyselect_1.1.0       tibble_3.0.3           lgr_0.3.4             
[37] roxygen2_7.1.1         mlr3misc_0.7.0         codetools_0.2-16      
[40] fansi_0.4.1            future_1.18.0          crayon_1.3.4          
[43] dplyr_1.0.0            withr_2.4.0            commonmark_1.7        
[46] grid_4.0.2             gtable_0.3.0           lifecycle_0.2.0       
[49] git2r_0.27.1           magrittr_2.0.1         scales_1.1.1          
[52] cli_2.2.0              stringi_1.4.6          remotes_2.2.0         
[55] fs_1.5.0               sp_1.4-5               testthat_3.0.1        
[58] xml2_1.3.2             ellipsis_0.3.1         vctrs_0.3.2           
[61] generics_0.0.2         rcmdcheck_1.3.3        tools_4.0.2           
[64] mlr3_0.10.0            glue_1.4.1             purrr_0.3.4           
[67] processx_3.4.5         pkgload_1.1.0          parallel_4.0.2        
[70] colorspace_1.4-1       terra_0.7-11           xopen_1.0.0           
[73] sessioninfo_1.1.1      memoise_1.1.0          knitr_1.29            
[76] usethis_1.6.1  

并且我运行的是Ubuntu 20.4。

帮我一下。

问题终于解决了。我的工作流程如下:

1-我尝试了@r2evans的第一种方法,但它不起作用,

2-根据@r2evans, @user2554330和@pat-s的解决方案,我删除了Microsoft-R

3- I安装R-CRAN_4.3, R在此阶段使用默认的BLASLAPACK。以下是在linux上使用默认BLAS/LAPACK库时的输出:

## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1

但是,为了利用硬件并进行多线程处理,必须更改。有几个高度优化的库可以用来代替默认的基本库。我主要使用Dirk Eddelbuettel的这个非常有趣且易于理解/实现的方法。因此,我执行了第4步:

4-install MKL用于基于.deb的系统和集成的MKL

5-删除所有以前安装的包,

6-重新安装R-package/Description中提到的所有依赖项和建议库,

7-运行R CMD CHECK—as-CRAN最后DONE!.

注意:如果你(像我一样)不知道BLAS是什么,这里有一个非常酷的帖子。我使用的其他来源有:1、2和3。

感谢大家的评论和建议。@r2evans, @user2554330, @pat-s

相关内容

  • 没有找到相关文章