RStudio没有检测到Rtools

时间:2015-10-13 12:50:14

标签: r rstudio packages shiny

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

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

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

  

准备部署应用程序... DONE上传包   应用: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可以从命令行启动

然而,我尝试使用installr软件包在RStudio内安装和检查,它说,

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

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

请提出解决方案。非常感谢你的时间。

4 个答案:

答案 0 :(得分:21)

我不知道为什么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)部分是错字,但需要这样R才能注入“32”或“64”,具体取决于您使用的R版本(32位或64位)

修改1::另请参阅最近发布的这篇r-bloggers文章:https://www.r-bloggers.com/quirks-about-running-rcpp-on-windows-through-rstudio/

答案 1 :(得分:1)

请注意,存在新的潜在问题(从R 3.3开始),因为R(不是RStudio,但R 添加BINPREF变量并修改{默认情况下为{1}}变量,请参阅后者的Path文件,例如在Windows上在Renviron.site下:

C:\Program Files\R\R-3.4.3\etc

对于安装了自定义路径和/或多个版本的Rtool的人来说,这可能很容易发生冲突,所以我用PATH="C:\Rtools\bin;${PATH}" 对此进行了评论。

对于#问题,请参阅BINPREF文件,例如在Makeconf下:

C:\Program Files\R\R-3.4.3\etc\x64

然后我将其修改为BINPREF ?= c:/Rtools/mingw_64/bin/ ,这是我安装c:/Rtools34/mingw_64/bin/的地方 您可以对32位arch下的Rtools34文件执行相同的操作。子目录。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

BINPREF可以在许多地方设置。就我而言,它是在C:/Users/MYUSERNAME/Documents/.R/Makevars中设置的。删除此文件的内容将删除指向以前的RTools安装的链接,并且由于删除该链接,因此已删除。

也值得检查文件$RPATH/etc/i386/Makeconf(如果您使用64位安装,则将其交换用于x64的i386),将在每次R的每次新安装时重新创建。 BINPREF ?= c:/Rtools/mingw_32/bin/,它(通过?=运算符)将设置BINPREF的值(如果尚未设置),如上面提到的Makevars文件中那样。

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