【问题标题】:Issue running renv package in R在 R 中运行 renv 包
【发布时间】:2020-05-26 10:24:41
【问题描述】:

我正在尝试执行 renv::snapshot() 并且我得到了

Error in file.exists(children) : 
  file name conversion problem -- name too long?

我在 Windows 10 上,我找不到项目的 dir 路径名(C:\Users\alber\OneDrive\Documentos\R\manual)有任何问题。

还能是什么?

编辑 - renv::diagnostics()

Obs.:由于我的项目位于 OneDrive 文件夹中,我可以在另一台机器上打开它并且它工作正常。 我注意到在另一台机器中项目路径已满 (C:/...) 而在这台机器中它以 ~/.也许就是这样?

Diagnostics Report -- renv [0.10.0-42]
======================================

# Session Info =======================
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)

Matrix products: default

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252   
[3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
[5] LC_TIME=Portuguese_Brazil.1252    

... 

# Project ============================
Project path: "~/R/manual_assessorias"

...

# Packages ===========================
The project library "~/R/manual_assessorias/renv/library/R-4.0/x86_64-w64-mingw32" does not exist.
...

# User Profile =======================
[no R packages referenced in user profile

# Settings ===========================
List of 6
 $ external.libraries       : chr(0) 
 $ ignored.packages         : chr(0) 
 $ package.dependency.fields: chr [1:3] "Imports" "Depends" "LinkingTo"
 $ snapshot.type            : chr "implicit"
 $ use.cache                : logi TRUE
 $ vcs.ignore.library       : logi TRUE

# Options ============================
List of 1
 $ renv.verbose: logi TRUE

# Environment Variables ==============
HOME        = C:\Users\alber\OneDrive\Documentos
LANG        = <NA>
R_LIBS      = <NA>
R_LIBS_SITE = <NA>
R_LIBS_USER = C:/Users/alber/OneDrive/Documentos/R/win-library/4.0

# PATH ===============================
- C:\Program Files\R\R-4.0.0\bin\x64
- C:\Program Files (x86)\Common Files\Oracle\Java\javapath
- C:\WINDOWS\system32
- C:\WINDOWS
- C:\WINDOWS\System32\Wbem
- C:\WINDOWS\System32\WindowsPowerShell\v1.0\
- C:\WINDOWS\System32\OpenSSH\
- C:\Program Files\Git\cmd
- C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
- C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
- C:\Users\alber\AppData\Local\Microsoft\WindowsApps
- C:\Users\alber\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\

# Cache ==============================
There are a total of 0 package(s) installed in the renv cache.
Cache path: "C:/Users/alber/AppData/Local/renv/cache/v5/R-4.0/x86_64-w64-mingw32"

【问题讨论】:

  • 尝试先运行setwd(Sys.getenv("HOME"))更改工作目录,然后运行renv::snapshot()。如果可行,则问题可能与项目路径有关。
  • 这样做了,项目路径变成了只有“~”(没用)。相当令人沮丧。猜猜我现在的问题是如何设置完整路径而不是相对路径。
  • 注意:我的个人笔记本电脑使用 R 4.0 时遇到了问题。然后我在我的公司笔记本电脑上尝试了 R 3.6 并且它工作正常。现在我刚刚在我的电脑上也用 R 4.0 进行了测试,得到了同样的错误。现在我很害怕:D
  • 你在使用 Rstudio 吗?您可以使用 Session>Set Working Directory>Choose Directory 更改工作目录吗?

标签: r


【解决方案1】:

看来您的问题是由于某些软件包依赖项安装在path with non-English characters 中。

https://github.com/rstudio/renv/blob/9298efabca69803bb808a4bc3c3311b5c98f706f/R/dependencies.R#L265

# return the set of files / subdirectories within a directory that should be
# crawled for dependencies
renv_dependencies_find_dir_children <- function(path, root) {

  # list files in the folder
  children <- renv_file_list(path, full.names = TRUE)

  # remove files which are broken symlinks
  children <- children[file.exists(children)]

  # remove hard-coded ignores
  ignored <- c("renv")
  children <- children[!basename(children) %in% ignored]

  # construct pattern for matching files in this path
  # (return all files if no such pattern available)
  renv_renvignore_exec(path, root, children)

}

【讨论】:

  • 似乎不是这样:C:\Users\alber\OneDrive\Documentos\R\win-library\4.0 它适合 UTF-8。
  • 你能运行 renv::diagnostics() 吗? #Dependencies 会返回什么?
  • 完成。看我上面的评论。这有意义吗?
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 2022-09-22
  • 1970-01-01
  • 2011-09-04
  • 2020-10-27
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多