【问题标题】:tidyverse installing error : there is no package called ‘fansi’tidyverse 安装错误:没有名为“fansi”的包
【发布时间】:2021-08-19 05:12:26
【问题描述】:

我安装了“tidyverse”,但显示错误。

Error: package or namespace load failed for ‘tidyverse’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 there is no package called ‘fansi’

所以我安装了“fansi”,它显示在下面。

> install.packages("fansi")

  There is a binary version available but the source version is later:
      binary source needs_compilation
fansi  0.4.2  0.5.0              TRUE

Do you want to install from sources the package which needs compilation? (Yes/no/cancel) yes

但我收到以下错误消息。

* installing *source* package ‘fansi’ ...
** package ‘fansi’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
ERROR: compilation failed for package ‘fansi’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1/Resources/library/fansi’
Warning in install.packages :
  installation of package ‘fansi’ had non-zero exit status

我尝试再次运行“tidyverse”,但仍然出现同样的错误。 你知道是什么原因造成的以及如何解决吗?

【问题讨论】:

  • 您可能缺少 Rtools 程序 v2,尝试使用 cran.r-project.org/bin/windows/Rtools/rtools40v2-x86_64.exe 下载它
  • 或者如果你在 mac 上运行它可能需要一些库来编译它,在这种情况下它看起来像 xcrun 尝试在你的终端上运行 xcode-select --install
  • 如果你只想要 tidyverse 并且不关心最新的东西,只需选择“no”选项不从源代码编译,它应该下载版本 0.4.2 就好了
  • 什么是 Xcode 以及如何安装它?我为“你想从源代码安装需要编译的包吗?”选择了“否”。这一次,又发生了一些冲突。
  • ── 冲突 ──────── tidyverse_conflicts() ── x dplyr::filter() 屏蔽 stats::filter() x dplyr::lag() 屏蔽 stats::lag( )

标签: r tidyverse


【解决方案1】:

一般来说,作为一个新用户,当 R 中出现问题 Do you want to install from sources the package which needs compilation? (Yes/no/cancel) 时,只需选择“否”就不会那么麻烦了。

R 对问题的解释和回答

Do you want to install from sources the package which needs compilation? (Yes/no/cancel) 的问题告诉您,您尝试安装的一个(或多个)软件包的版本比作为二进制可用的版本更新。要理解这意味着什么,您需要对 R 包生态系统有所了解。

起重机

安装软件包的默认位置称为 CRAN(综合 R 存档网络)。这是一个 Web 服务器(实际上是世界范围内的许多服务器),其中包含许多 R 包的副本。当为 R 编写包时,它们最初是作为source code 编写并提交给 CRAN。对于 Windows 和 Mac OS 操作系统,提交给 CRAN 的源代码随后将 compiled 转换为 binary packages

你可以把它想象成一家服装店。你可以去商店买一件适合寒冷天气的夹克,或者一顶阳光充足的帽子,或者很多其他选择。

二进制包

软件包被编译成二进制文件是因为它们有several advantages:它们使最终用户能够更快地安装,因为用户不需要自己编译源代码,从而节省了他们的时间。它们也更易于用户管理,因为用户不需要额外的软件或工具,而且它们往往更稳定。然而,缺点是二进制文件特定于特定系统,通常是操作系统,有时甚至是特定版本的操作系统。从源代码编译一个包需要时间,特别是如果它是一个大包。二进制文件也(可能)不包含最新版本的代码,因此可能存在尚未修复的错误,或者可能缺少新功能或新增功能。

CRAN 过程

当 CRAN 收到更新的软件包时,可能需要几天时间才能将源代码编译成二进制文件。同时,如果用户尝试安装该软件包,则会显示您观察到的消息,让用户可以选择安装二进制文件,这通常更快,但可能没有一些新功能或可能包含尚未安装的错误尚未修复,或者源代码版本是最新版本,但需要您发现的额外工具。

在商店类比的上下文中,您可以将其视为服装店的新库存。他们收到了新库存,但还没有上架。你可以过几天再来,或者你可以找到盒子(需要一把小刀之类的工具才能打开),然后自己打开包装,然后拿到物品。

从源安装

正如@Bruno 的评论中所提到的,您需要install Xcode 在 MacOS 上从源代码安装包,在 Windows 上从 rtools 安装包。大多数情况下,安装这些附加工具是从源代码构建软件包所需的全部,但有时事情可能不会那么顺利,这就是为什么安装二进制文件通常更好的原因。

关于冲突的附加说明

加载 tidyverse 时,您收到的有关冲突的注释完全正常。它在那里提醒您注意,有多个同名的函数来自不同的包,如果您没有意识到这可能会导致问题。在大多数情况下,您无需担心,但如果有问题,您会很高兴easy to solve

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多