Записная книжка Jupyter: загрузка пакета или пространства имен не выполнена из-за 'caret' в loadNamespace - PullRequest
1 голос
/ 06 апреля 2020

Первоначально я собирался задать следующий вопрос, но сам разобрался и решил опубликовать следующий вопрос и ответить на тот случай, если это может помочь кому-то с такой же проблемой:

Я сейчас работаю над проект в Jupyter Notebook с использованием R.

Все работало нормально, пока я не попытался загрузить каретку с library(caret), и я получил следующее сообщение об ошибке:


Error: package or namespace load failed for 'caret' in loadNamespace(j <- i[[1L]], c(lib.loc, > > .libPaths()), versionCheck = vI[[j]]):
there is no package called 'codetools'
Traceback:

1. library(caret)
2. tryCatch({
.     attr(package, "LibPath") <- which.lib.loc
.     ns <- loadNamespace(package, lib.loc)
 .     env <- attachNamespace(ns, pos = pos, deps, exclude, include.only)
 . }, error = function(e) {
 .     P <- if (!is.null(cc <- conditionCall(e))) 
 .         paste(" in", deparse(cc)[1L])
 .     else ""
 .     msg <- gettextf("package or namespace load failed for %s%s:\n %s", 
 .         sQuote(package), P, conditionMessage(e))
 .     if (logical.return) 
 .         message(paste("Error:", msg), domain = NA)
 .     else stop(msg, call. = FALSE, domain = NA)
 . })
3. tryCatchList(expr, classes, parentenv, handlers)
4. tryCatchOne(expr, names, parentenv, handlers[[1L]])
5. value[[3L]](cond)
6. stop(msg, call. = FALSE, domain = NA)

Я попытался удалить сообщение и переустановка caret в RStudio, но это тоже не помогло. Что еще более раздражает, так это то, что в моем RStudio все работает нормально, просто ноутбук Jypyter не может найти caret.

Вот информация о моей сессии. К вашему сведению:

R version 3.6.0 (2019-04-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 15063)

Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252 
[2] LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_3.3.0   lattice_0.20-38

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.3        pillar_1.4.2      compiler_3.6.0    plyr_1.8.4       
 [5] base64enc_0.1-3   iterators_1.0.12  tools_3.6.0       digest_0.6.22    
 [9] uuid_0.1-2        jsonlite_1.6      evaluate_0.14     tibble_2.1.3     
[13] gtable_0.3.0      nlme_3.1-142      pkgconfig_2.0.3   rlang_0.4.5      
[17] foreach_1.4.7     IRdisplay_0.7.0   IRkernel_1.0.2    repr_1.0.1       
[21] withr_2.1.2       dplyr_0.8.3       grid_3.6.0        tidyselect_0.2.5 
[25] glue_1.3.1        R6_2.4.1          pbdZMQ_0.3-3      purrr_0.3.3      
[29] magrittr_1.5      scales_1.0.0      codetools_0.2-16  htmltools_0.4.0  
[33] assertthat_0.2.1  timeDate_3043.102 colorspace_1.4-1  munsell_0.5.0    
[37] crayon_1.3.4     
​```

1 Ответ

0 голосов
/ 06 апреля 2020

Я решил проблему, удалив caret с remove.packages("caret") в Jupyter Notebook. Я также проверил, что пакет больше не был установлен в RStudio.

Затем я переустановил caret с install.packages("caret", dependencies = TRUE) в ноутбуке Jupyter.

Я думаю, что причина в том, что Jupyter не установил зависимые пакеты caret. Из первого сообщения об ошибке в вопросе это было codetools. И каждый раз, когда я устанавливал пакет, указанный в сообщении об ошибке, он устанавливал другой пакет для установки. Это заставило меня подумать, что, разумеется, он не установил никаких зависимостей.

caret теперь работает в Jupyter Notebook.

...