r语言 - ROracle - 无法按"not built for UCRT"安装



所以我在这里遵循了以下说明:

https://medium.com/analytics-vidhya/how-to-install-roracle-on-windows-10-144b0b923dac

有效安装瘦客户端,设置环境变量。。。然后下载适用于windows的ROracle 64位,并在R:中运行以下程序

setwd("C:/Users/MyName/Downloads")
install.packages("ROracle_1.3-2.zip",repos = NULL)
install.packages("DBI")
library("DBI")
library("ROracle")

我得到了这个错误:

source("~/.active-rstudio-document")
Installing package into ‘C:/Users/MyName/AppData/Local/R/win-library/4.2’
(as ‘lib’ is unspecified)
package ‘ROracle’ successfully unpacked and MD5 sums checked
Error in install.packages : package ‘ROracle’ not installed because it is not built for UCRT
Installing package into ‘C:/Users/MyName/AppData/Local/R/win-library/4.2’

事实证明,R确实比Python更棘手。这通过";pip-installcx_Oracle";。

这很痛苦,但我能够在带有Windows 11的RStudio R4.2中安装ROracle,从源代码构建。这是我的笔记:

###***安装ROracle的程序***###

来自的笔记https://community.oracle.com/tech/developers/discussion/4493466/roracle-for-r-4-0-0-or-newer

  1. 获取并安装新版本的R.

  2. 安装新版本的Rtools。在我的情况下,它是4.2版本,就像上面注释页中所说的那样:https://cran.r-project.org/bin/windows/Rtools/rtools42/rtools.html.单击Rtools42_installer。接受默认值。

  3. 获取新版本的Oracle Instant Client并将其提取到文件夹C:\Oracle中,创建C:\Oracle\instantclient_21_6https://www.oracle.com/database/technologies/instant-client/downloads.html

  4. 从即时客户端的sdk包获取新版本https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html请确保将sdk包提取到位于C:\oracle\instantclient_21_6的即时客户端文件夹中。所以在我的例子中,结果是:C:\oracle\instantclient_21_6\sdk。

  5. 打开您的";"环境变量";并添加变量";OCI_LB64";具有与您的即时客户端所在位置相同的值(在我的案例中为C:\oracle\instantclient_21_6(

In";"环境变量";还添加变量";PATH";具有相同的值C:\oracle\instantclient_21_6(已经有一个"路径"变量。添加"路径"作为新变量。在此之前,我收到LoadLibrary错误。

  1. 下载新版ROracle(ROracle_1.3-2.tar.gz(https://www.oracle.com/database/technologies/roracle-downloads.html并将其存储到文档文件夹中。至少在我的情况下,remotes:install_local函数从那个位置调用了包。当您尝试在R中运行install命令时,如果找不到ROracle,remotes:install_local将在尝试查找ROracle的位置向您发出警告。

  2. 打开R(如果已经运行,则需要重新启动环境变量更改才能生效(

将wd设置为Documents:setwd("~/")

install.packages("codetools")#这是R基的一部分吗?可能不需要额外安装??

install.packages("remotes")

remotes::install_local("ROracle_1.3-2.tar.gz", repos = NULL, type = "source")

希望这一切都能奏效。您将需要包裹";DBI";也

正如您在ROracle的CRAN软件包页面上看到的那样,没有预先提供的二进制文件:不适用于Windows,不适用于macOS,也不适用于macOS-Arm64。

您试图安装不同的版本,错误消息告诉您,不适合Windows上的当前R版本,该版本已切换(从4月的R 4.2.0开始(为UCRT内部版本,以便在Windows上更好地支持utf-8。(在R开发者博客上有大量关于底层细节的文档。(

您的版本似乎是为以前的版本构建的,所以如果您非常需要它,可以选择降级到R 4.1.*。否则,也许你可以让数据库系统背后的好人来为你构建当前R的更新版本,或者你可以自己尝试。

@Brian Syzdek的回答帮助我在Windows 10设备上安装。另外几点可能会对其他人有所帮助。

  • 我不需要安装codetools包
  • 请确保在以下位置下载并安装ROracle_1.3-2.tar.gz文件在https://www.oracle.com/database/technologies/roracle-downloads.html,而不是链接到Windows行
  • 我不得不在RStudio控制台中使用remotes:install_local;使用Rstudio菜单工具->安装程序包对我不起作用,尽管这可能与最初尝试安装zip文件有关,而不是tar.gz

相关内容

  • 没有找到相关文章

最新更新