RStudio 未检测到 Rtools

Posted

技术标签:

【中文标题】RStudio 未检测到 Rtools【英文标题】:Rtools is not being detected from RStudio 【发布时间】:2016-01-11 05:39:03 【问题描述】:

我正在使用最新的 R、RStudio 和 Rtools。

-- 我已经更新了环境变量。现在我可以从命令行调用 gcc 或 R。

当我尝试从 RStudio 发布应用程序时,我收到以下错误,

准备部署应用程序...完成上传包 应用程序:64015 ...错误: * 应用程序依赖于包“Rtools”,但它没有安装。请在继续之前解决。执行停止

-- 我试过这个,在控制台上,

> find_rtools(T)
Scanning path...
ls : D:\Rtools\bin\ls.exe 
gcc: D:\Rtools\GCC-46~1.3\bin\gcc.exe 
VERSION.txt
Rtools version 3.3.0.1959 
Version: 3.3 
[1] TRUE

所以,Rtools 似乎基本上就在那里!

-- 我检查了环境变量,没有问题,我也提到了 R 和 gcc 可以从命令行启动

然而,我尝试使用安装程序包从 RStudio 中安装和检查,它说,

> install.Rtools()
No need to install Rtools - You've got the relevant version of Rtools installed
> 

-- 这不可能是重复的,Rtools not being detected by R 我已经尝试了所有这些。没用。

请提出解决方案。非常感谢您的宝贵时间。

【问题讨论】:

您正在运行的返回错误的命令到底是什么?它正在寻找一个“'Rtools' 包”,这似乎与仅寻找要安装的 Rtools 不同。你自己写包吗?您是否正确指定了依赖项? 很多人都会犯类似的错误,Rtools 不是一个包。您需要安装它的开发环境。您可以从这里阅读更多信息,cran.r-project.org/bin/windows/Rtools 我已经在两台电脑上测试过了。没有运气!我错过了什么? 我有类似的问题,但还没有解决方案(使用 R3.4.0 和 RStudio 1.0.143)。有趣的是:如果我执行 devtools::find_rtools(F, T) RTools 找到(直到我重新启动 R 会话)。 问题是 RStudio 无法识别自定义 RTools 目录的错误。如果可能的话,尽量使用C:/。我认为在 V1.1.0 >= 中添加了一个修复程序 【参考方案1】:

我不知道为什么 RStudio 会时不时出现此类问题,但这里描述了一种手动解决方法:

https://github.com/rwinlib/r-base/wiki/Testing-Packages-with-Experimental-R-Devel-Build-for-Windows

基本上你必须设置两个环境变量来指向正确的Rtools安装路径:

Sys.setenv(PATH = paste("C:/Rtools/bin", Sys.getenv("PATH"), sep=";"))
Sys.setenv(BINPREF = "C:/Rtools/mingw_$(WIN)/bin/")

为避免在重新启动 RStudio 后丢失此更改,您可以改为修改 (Windows) 环境变量,或将以下行添加到每次 R 启动时执行的 .Renviron 文件中。

顺便说一句:$(WIN) 部分是 no 错字,但需要 R 可以根据您使用的 R 版本(32 位或 64 位)注入“32”或“64”。

编辑 1: 另见最近发表的这篇 r-bloggers 文章:https://www.r-bloggers.com/quirks-about-running-rcpp-on-windows-through-rstudio/

【讨论】:

这个解决方案的问题是它否定了 OP 使用自定义安装路径 D:/ 而不是 C:/ 的事实。如上述评论所示,这是 RStudio 版本 的已知问题 @coatless 你说得对,我现在已经宣布我的答案是“解决方法”。我认为这对其他有类似问题的人会有所帮助(我已经浪费了几个小时来诊断和解决这个问题) 作为更新,我不得不稍微修改上面的路径,因为它现在称为RBuildtools + 版本号,而不仅仅是Rtools> Sys.setenv(BINPREF = "C:/RBuildtools/3.4/mingw_$(WIN)/bin/") > Sys.setenv(PATH = paste("C:/RBuildtools/3.4/bin", Sys.getenv("PATH"), sep=";")) @spops RBuildtools 是自定义路径还是 Rtools 在安装过程中建议的默认路径(我问是因为我不知道 Rtools 的默认安装路径有任何变化)? 请注意,最后的斜线显然非常重要。我想了几分钟,找不到这个 bing++ 是什么【参考方案2】:

请注意,存在新的潜在问题类型(从 R 3.3 开始),因为 R(不是 RStudio,而是 R添加了一个 BINPREF 变量并修改了 Path默认情况下变量,请参阅Renviron.site 后者的文件,通常在 Windows 上,例如C:\Program Files\R\R-3.4.3\etc下:

PATH="C:\Rtools\bin;$PATH" 

对于安装了自定义路径和/或安装了多个 Rtools 版本的人来说,这可能很容易发生冲突,因此我使用 # 对此进行了注释。

对于BINPREF 问题,请参阅Makeconf 文件,例如C:\Program Files\R\R-3.4.3\etc\x64下:

BINPREF ?= c:/Rtools/mingw_64/bin/

然后我将其修改为 c:/Rtools34/mingw_64/bin/,这是我安装 Rtools34 的位置。 您可以对 32 位架构下的 Makeconf 文件执行相同操作。子目录。

【讨论】:

【参考方案3】:

通过R CMD check not looking for gcc in Rtools directory:

R 使用BINPREF 变量来定位某些可执行文件,包括 RTools 的组件。

BINPREF 可以设置在多个位置。就我而言,它设置在C:/Users/MYUSERNAME/Documents/.R/Makevars。删除此文件的内容会删除一个指向先前安装 RTools 的链接,因为删除后,安装 RTools。

还值得检查文件$RPATH/etc/i386/Makeconf(如果您有 64 位安装,则将 i386 换成 x64),每次新安装 R 时都会重新创建该文件。注意该行 BINPREF ?= c:/Rtools/mingw_32/bin/,它(通过?= 运算符)将设置BINPREF 的值,如果它尚未设置,就像在上面提到的Makevars 文件中一样。

临时解决方法是将BINPREF ?= 替换为BINPREF =, 但是由于 Makeconf 文件在 R 更新时会被覆盖,因此您必须记住每次都这样做。最好编辑或删除 Makevars 文件以进行永久更改。

【讨论】:

【参考方案4】:

搜索了很多解决方案,最后我删除了 C:\Users\My name\Documents 中的 .Renviron 文件。然后 rtools40 工作。

【讨论】:

以上是关于RStudio 未检测到 Rtools的主要内容,如果未能解决你的问题,请参考以下文章

RStudio没有检测到Rtools

服务器安装新版本R及Seurat方法

无法在 Azure DSVM 上安装 AzureStor,因为它不会检测到 Rtools

rsession:未找到进程 - R Studio

RStudio中的SQL查询无法正常工作(odbc)

未检测到 UIToolBar 上 UIToolBar 上的模态视图中的 UIButton 触摸未检测到