R没有检测到Rtools

时间:2013-11-10 01:52:36

标签: windows r rstudio

更新

我写了一篇简短的installing Rtools on windows演练指南。

原始

我正在尝试在Windows 7上使用RStudio构建R包。当我尝试通过RStudio的Build面板构建包时,我收到:

WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

http://cran.rstudio.com/bin/windows/Rtools/

正在加载library(devtools)并运行find_rtools(T)会产生:

Scanning path...
ls : F:\Rtools\bin\ls.exe 
Scanning registry...
Found F:/Rtools for 3.1 
VERSION.txt
Rtools version 3.1.0.1936 
[1] TRUE

Path变量设置为:

F:\Rtools\bin;F:\Rtools\gcc-4.6.3\bin;F:\Rtools\perl\bin;F:\Rtools\MinGW\bin;F:\Program Files\R\R-3.0.2\bin\x64;F:\Program Files (x86)\HTML Help Workshop;F:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Microsoft Network Monitor 3\;F:\Program Files (x86)\QuickTime\QTSystem\

我已经多次重启,但错误仍然存​​在。我有点困惑为什么会这样。

R访问系统变量时的输出路径:

> Sys.getenv()['PATH']
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 PATH 
"F:\\Program Files\\R\\R-3.0.2\\bin\\x64;F:\\Rtools\\bin;F:\\Rtools\\gcc-4.6.3\\bin;F:\\Rtools\\perl\\bin;F:\\Rtools\\MinGW\\bin;F:\\Program Files\\R\\R-3.0.2\\bin\\x64;F:\\Program Files (x86)\\HTML Help Workshop;F:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\Common Files\\Microsoft Shared\\Windows Live;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows Live;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Windows Live\\Shared;C:\\Program Files\\Microsoft Network Monitor 3\\;F:\\Program Files (x86)\\QuickTime\\QTSystem\\" 

我正在使用的R版本是:R版本3.0.2(2013-09-25) - “飞盘航行。”

我使用的Rstudio版本是:0.97.551。当我检查更新时,我被告知这是最新的补丁。

> Sys.which("ls.exe")
                   ls.exe 
"F:\\Rtools\\bin\\ls.exe" 
> Sys.which("gcc.exe")
gcc.exe 
     "" 

8 个答案:

答案 0 :(得分:13)

当我安装RTools时,我在安装中遗漏了R 2.15.x +工具链选项,导致gcc从未安装。希望如果RStudio无法注册RTools,这篇文章将作为诊断指南。

谢谢大家的帮助。

答案 1 :(得分:4)

Windows上的RTools安装默认情况下不会选择要包含的C编译器。我盲目地点击了几次运行安装并得到了这个错误。我重新安装了安装程序并选择/包含32位和64位C编译器。问题解决了。

答案 2 :(得分:4)

还可以补充一点,如果您的计算机上没有管理员权限,则由于某些注册表权限丢失,Rtools的安装将失败。

我花了很长时间来弄明白这一点,因为如果你通过R安装Rtools,你就不会看到这个警报。

所以最好下载.exe文件,以管理员身份安装它并勾选上面提到的框以使Rtools正常工作。

答案 3 :(得分:0)

我有同样的错误,并且我已经安装了工具链(我相信)。

我的解决方法是将R Tools路径移到我的PATH变量的开头。

答案 4 :(得分:0)

另一个可能的原因是R通过R CMD check not looking for gcc in Rtools directory在RTools组件的错误目录中查找:

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 文件,以进行永久更改。

答案 5 :(得分:0)

您可以通过输入以下命令将Rtools添加到路径中:

imgc = np.multiply(imgc, yellow_image, casting='unsafe', dtype=np.uint8)

答案 6 :(得分:0)

当您登录的 Windows 用户没有添加文件的权限时,Windows 用户可能会出现此错误消息。

您可以通过授予 windows 用户所需的权限来解决此问题

背景:

  • 我尝试了 install.packages("Rtools") 但它没有帮助 Rtools 不是 R 包,而是无法通过 install.packages() 安装的独立安装程序(感谢 @coatless)
  • windows 用户获得所需权限后,`install.packages("tidyverse") 之类的事情就成功了(无需尝试重​​新安装 Rtools)。

答案 7 :(得分:0)

https://cran.r-project.org/bin/windows/Rtools/

从 R 4.0.0(2020 年 4 月发布)开始,R for Windows 使用名为 rtools40 的全新工具链包。

此版本的 Rtools 将 mingw-w64 gcc 工具链升级到 8.3.0 版本,并引入了基于 msys2 的新构建系统,这使得构建和维护 R 本身以及 R 包所需的系统库更加容易视窗。有关后者的更多信息,请点击本文档底部的链接。

本文档是关于 rtools40,当前用于 R 4.0.0 和更新版本的版本。有关可与 R 3.6.3 或更早版本一起使用的早期 Rtools 版本的信息,请访问此页面。 安装 Rtools40

请注意,rtools40 只需要从源代码使用 C/C++/Fortran 代码构建 R 包。默认情况下,R for Windows 安装来自 CRAN 的预编译“二进制包”,您不需要 rtools!

要使用 rtools40,请从 CRAN 下载安装程序:

On Windows 64-bit: rtools40-x86_64.exe (recommended: includes both i386 and x64 compilers)
On Windows 32-bit: rtools40-i686.exe (i386 compilers only)

RStudio 用户注意事项:请检查您使用的是最新版本的 RStudio(至少 1.2.5042)以与 rtools40 配合使用。

将 Rtools 放在 PATH 上

安装完成后,您还需要执行一个步骤才能编译 R 包:您需要将 Rtools make 实用程序(bash、make 等)的位置放在 PATH 中。最简单的方法是在您的 Documents 文件夹中创建一个文本文件 .Renviron,其中包含以下行:

PATH="${RTOOLS40_HOME}\usr\bin;${PATH}"

您可以使用文本编辑器执行此操作,或者您甚至可以像这样使用 R 执行此操作:

writeLines('PATH="${RTOOLS40_HOME}\usr\bin;${PATH}"', con = "~/.Renviron")

现在重新启动 R,并验证是否可以找到 make,它应该会显示您的 Rtools 安装路径。

Sys.which("make")

"C:\rtools40\usr\bin\make.exe"

如果可行,您可以尝试从源代码安装 R 包:

install.packages("jsonlite", type = "source")

如果成功,你就可以开始了!请参阅以下链接以了解有关 rtools40 和 Windows 构建基础架构的更多信息。