r - `renv`有可能是 "bypassed"或者暂时关闭吗?

标签 r renv

我有一个 RStudio 项目,它使用 renv 管理包,效果很好。

但有时我想在我的主环境(正确的词?)上使用库来调试或探索一些我不想添加到项目中的东西。例如,也许我想运行一些长调试函数并在最后调用 beepr::beep() 。如果不将 beepr 包安装到项目中,这可能吗?

long_process()
beepr::beep() # How do I make this call?

最佳答案

您可以从技术上禁用沙箱,这是 renv 阻止系统库中安装的软件包在项目中可用的地方(这就是为什么您无法使用 beepr::beep() 在您的示例中。您可以轻松更改用户配置,只需查看 documentation from env 。此处的设置为 renv.config.sandbox.enabled

但是,我认为这不是最好的选择。根据 ?renv::snapshot 中描述的快照类型设置,您不必担心安装 beepr,而是将其添加到锁定文件中。

您可以使用以下方法检查或设置快照类型:

renv::settings$snapshot.type()

如果您在环境中安装了 beepr 软件包,那么根据您将获得的类型:

  • “all”:唯一有问题的设置。如果您在主动加载 beepr 的情况下运行快照,它将被添加到锁定文件中,这不是您想要的。

  • “隐式”:只要保存到库的 R 代码中没有引用 beepr,它就不会被添加到锁定文件中.

  • "explicit":仅添加 DESCRIPTION 中定义的包。

  • "custom":顾名思义,是自定义的,但取决于项目中保存的文件,因此仅在保存在某处时才会添加 beepr 而不仅仅是通过调试以交互方式使用。

因此,总而言之,除非您使用"all",否则您应该可以安全地安装和使用beepr!如果您使用的是"all",那么请务必在运行snapshot()之前detach("package:beepr", unload = TRUE) >.

关于r - `renv`有可能是 "bypassed"或者暂时关闭吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70189319/

相关文章:

renv::restore() 错误:无法检索 'package'(使用私有(private)包)

r - 如何从 R 统计程序中完全删除 renv

R:在命名环境中存储相似的函数

r - 通过多列搜索值,返回行的id

r - 将 renv 用于私有(private) GitLab 包

renv 和 git : what to commit

r - 需要在 R 中编写一个新的随机生成器

r - data.table 性能在按组计算列的滞后差异时不会线性扩展

r - 使用带有 ggplot 的两个向量的分位数-分位数图