renv 是否真的安装了与 r 基础环境隔离的包?
does renv really install packages isolated from r base environment?
我有一个项目,它是我通过 rstudio
使用 GUI 并点击(新建项目)按钮创建的。以下是我如何使用 renv
创建项目的一些快照。我的 OS 是 Ubuntu 20.04 LTS。
到目前为止一切顺利,renv
已经创建了通常的可疑文件和文件夹:
.Rprofile
renv/activate.R
renv/library
尚未创建renv.lock
。我相信这是因为我在创建文件夹时从未调用过 renv::snapshot()
。
然后我开始在我的项目上正常工作,并通过调用 install.packages()
安装了几个包。例如 dplyr
就是其中之一。但是我注意到,当我关闭项目并调用 installed.packages()
时,我的项目中安装的相同包也安装在外部。我认为 renv
的工作方式类似于 python 中的 conda
环境,其中 packages
与其他环境隔离。我在这里错过了什么?我的直觉是 renv
对于 python.
来说并不是像 conda
这样的虚拟环境
当我在项目中 运行 libPaths()
时,我得到 renv/library
的路径和 /tmp/...
路径:
[1] "/home/alex/Documents/GitHub/CIMMYT/renv/library/R-4.0/x86_64-pc-linux-gnu"
[2] "/tmp/RtmpdfQT46/renv-system-library"
当我 运行 libPaths()
在我的项目之外时,我得到:
[1] "/home/alex/R/x86_64-pc-linux-gnu-library/4.0"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
I then started to work normally on my project and installed several packages by calling install.packages(). For example dplyr is one of those packages. However I noticed that when I close the project and call installed.packages() the same packages installed in my project are also installed outside. I thought renv works like a conda environment in python which packages are isolated from other environments. What am I missing here ? My intuition is that renv is not really a virtual environment like conda for python.
这里最有可能的答案是,这些软件包也在一个单独的时间点安装到您的用户库中。
如果您可以将其提炼成可重现的示例,您可以在 https://github.com/rstudio/renv/issues 提交问题。然而,据我所知,一切都按预期工作,安装到您的用户库中的软件包可能是通过其他机制到达那里的。
我有一个项目,它是我通过 rstudio
使用 GUI 并点击(新建项目)按钮创建的。以下是我如何使用 renv
创建项目的一些快照。我的 OS 是 Ubuntu 20.04 LTS。
到目前为止一切顺利,renv
已经创建了通常的可疑文件和文件夹:
.Rprofile
renv/activate.R
renv/library
尚未创建renv.lock
。我相信这是因为我在创建文件夹时从未调用过 renv::snapshot()
。
然后我开始在我的项目上正常工作,并通过调用 install.packages()
安装了几个包。例如 dplyr
就是其中之一。但是我注意到,当我关闭项目并调用 installed.packages()
时,我的项目中安装的相同包也安装在外部。我认为 renv
的工作方式类似于 python 中的 conda
环境,其中 packages
与其他环境隔离。我在这里错过了什么?我的直觉是 renv
对于 python.
conda
这样的虚拟环境
当我在项目中 运行 libPaths()
时,我得到 renv/library
的路径和 /tmp/...
路径:
[1] "/home/alex/Documents/GitHub/CIMMYT/renv/library/R-4.0/x86_64-pc-linux-gnu"
[2] "/tmp/RtmpdfQT46/renv-system-library"
当我 运行 libPaths()
在我的项目之外时,我得到:
[1] "/home/alex/R/x86_64-pc-linux-gnu-library/4.0"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
I then started to work normally on my project and installed several packages by calling install.packages(). For example dplyr is one of those packages. However I noticed that when I close the project and call installed.packages() the same packages installed in my project are also installed outside. I thought renv works like a conda environment in python which packages are isolated from other environments. What am I missing here ? My intuition is that renv is not really a virtual environment like conda for python.
这里最有可能的答案是,这些软件包也在一个单独的时间点安装到您的用户库中。
如果您可以将其提炼成可重现的示例,您可以在 https://github.com/rstudio/renv/issues 提交问题。然而,据我所知,一切都按预期工作,安装到您的用户库中的软件包可能是通过其他机制到达那里的。