更新
我写了一篇简短的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
""
答案 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)答案 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")
如果可行,您可以尝试从源代码安装 R 包:
install.packages("jsonlite", type = "source")
如果成功,你就可以开始了!请参阅以下链接以了解有关 rtools40 和 Windows 构建基础架构的更多信息。