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的主要内容,如果未能解决你的问题,请参考以下文章