【问题标题】:Using renv: where should renv itself be installed?使用 renv:应该在哪里安装 renv 本身?
【发布时间】:2022-10-13 06:23:03
【问题描述】:

我开始使用renv 与团队成员就 R 项目进行协作。虽然我可以(大部分)让它工作,但我对是否以及在哪里安装 renv 本身有点困惑。根据documented workflow,在使用renv 开始一个新项目之前,我基本上需要安装 renv。

但是,当我没有安装 renv 并克隆使用 renv 的存储库时,它似乎会安装(引导程序?)本身。但它做到了这一点本地renv 环境。

我对此有几个问题:

  • 您是否建议将renv 安装在renv 虚拟环境的“外部”?
  • 您如何处理 renv 本身的版本之间的差异,例如安装在我的机器上并出现在我克隆的存储库中,我想复制哪个renv?我遇到了这个问题,无法从具有不同renv 版本的克隆回购中复制renv
  • 在更概念的层面上:为什么renv 本身是它创建的虚拟环境的一部分?我知道的 python 虚拟环境管理器不是这种情况。

【问题讨论】:

    标签: r renv r-environment


    【解决方案1】:

    您是否建议将 renv 安装在 renv 虚拟环境“外部”?

    我们的确是。事实上,如果你想首先初始化一个renv 项目,这是必要的,因为这是通过调用renv::init() 来完成的——所以常规的renv 初始化工作流需要将renv 安装到用户库。

    您如何处理 renv 本身版本之间的差异,例如安装在我的机器上并出现在我克隆的 repo 中,我想复制哪个 renv?我遇到了这个问题,无法从具有不同 renv 版本的克隆回购中复制 renv。

    由于renv只是一个R包,您可以根据需要安装或升级(或降级)项目内使用的renv的版本,而不影响其他项目。例如,可以使用普通的install.packages("renv") 从 CRAN 安装最新版本。

    renv 项目中工作时,该项目中安装的renv 版本通常是使用的副本——因此此时,用户库中安装的renv 版本不再重要.

    在更概念的层面上:为什么 renv 本身是它创建的虚拟环境的一部分?我知道的 python 虚拟环境管理器不是这种情况。

    这样做主要是为了确保现有的renv 项目可以继续运行,即使对renv 的更新破坏了一些现有的工作流程。 (我们努力确保这永远不会发生,但希望确保用户有一个逃生舱,以防万一。)

    但是,当我没有安装 renv 并克隆使用 renv 的存储库时,它似乎会安装(引导程序?)本身。但它在本地 renv 环境中执行此操作。

    此处的“引导”行为旨在帮助简化协作工作流程。与其要求用户在打开renv 项目之前明确安装renvrenv 知道足以在现有项目中引导自身,以便新用户可以快速启动和运行。 (此外,引导程序脚本还尝试确保安装了该项目配置为使用的renv 版本。)

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 2020-07-01
      • 2022-06-13
      • 2021-05-24
      • 2022-09-22
      • 2021-05-22
      • 1970-01-01
      • 2021-01-01
      • 2020-10-27
      相关资源
      最近更新 更多