【问题标题】:Sys.which("make") empty although Rtools is in PATH尽管 Rtools 在 PATH 中,但 Sys.which("make") 为空
【发布时间】:2021-05-28 21:22:20
【问题描述】:

我已完全卸载 R、RStudio 和 RTools 并删除了所有文件夹(如 here 所述);然后重新安装 R (4.0.4)、RTools (4.0 x86) 和 RStudio (1.4.1106)。我已将 RTools 文件夹添加到路径 (Sys.getenv("PATH") # [1] "$C:\\rtools40\\usr\\bin;....") 但问题仍然存在 - 'make' 为空,尽管存在 C:\rtools40\usr\bin\make.exe

> Sys.which("make")
make 
  "" 

有人可以帮助我吗? (This 问题没有帮助,因为我的 PATH 变量已经包含 RTools 文件夹。)

提前非常感谢! :)

【问题讨论】:

  • PATH$C: 开头而不是C: 开头有什么原因吗?
  • Sys.setenv(PATH=gsub("^\\$", "", Sys.getenv("PATH"))) 测试这个,然后Sys.which("make")。如果可行,请确保修复输入错误的位置(例如 Windows 的 环境变量 控件)。
  • 另外,如何永久设置路径?它在我重新启动 R 后消失(尽管将 Rtools 路径附加到 PATH 变量 - Sys.setenv(PATH = paste(old_path, "C:\\rtools40\\usr\\bin\\", sep = ";"))
  • @r2evans - 可以帮帮我吗?虽然上述命令将 Rtools 路径设置为路径变量,但在我重新启动 RGUI 后它消失了
  • 既然这样可行,我建议您将其修复在更合适的位置,无论为您的操作系统设置了环境变量。如果是 windows,请转到 Settings(windows,而不是 R)并查找 Environment Variables并在那里修改路径。

标签: r rtools


【解决方案1】:

对于后代:问题是“$”不属于路径。

感谢 @r2evans 的解决方案 - Sys.setenv(PATH=gsub("^\\$", "", Sys.getenv("PATH"))) 成功了。

【讨论】:

    【解决方案2】:

    对我来说,here 提出的解决方案适用于单个会话,然后我必须按照@r2evans 的建议在环境变量设置中永久添加路径。

    这是单个会话的解决方案:

    path <- Sys.getenv("PATH")
    path <- c("C:\\RBuildTools\\3.3\\bin", "C:\\RBuildTools\\3.3\\gcc-4.6.3\\bin", path) 
    #Remember to substitute the two paths with your actual paths.
    path <- paste(path,collapse=";")
    
    #Then run
    Sys.setenv(PATH=path)
    Sys.which("make")
    

    在临时解决方案和永久解决方案中,我都必须在 PATH 的开头包含路径,否则无法识别它们,但我不知道为什么。

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 2010-12-17
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多