如何在RStudio Server中使用Conda环境?

10

对于我的数据科学项目,我使用conda来跟踪所有已安装的软件包。

> conda create -n my_project R=3.4.1 r-tidyverse
> conda activate my_project
> which R 
/storage/apps/anaconda3/envs/my_project/bin/R
> R --version
R version 3.4.1 (2017-06-30) -- "Single Candle"

我如何在rstudio-server中使用Conda环境的R? 我知道rsession-which-r配置选项,但是这样我无法轻松地在环境之间切换。

1个回答

18

我创建了一个GitHub存储库,其中包含两个脚本,允许您从Conda环境内以非守护进程模式启动Rstudio服务器: rstudio-server-conda

工作原理:

您可以从Conda环境内以非守护进程模式(类似于jupyter notebook)启动rstudio-server。

> conda activate my_project
> /usr/lib/rstudio-server/bin/rserver \
   --server-daemonize=0 \
   --www-port 8787 \
   --rsession-which-r=$(which R) \
   --rsession-ld-library-path=$CONDA_PREFIX/lib
为了避免在库路径方面遇到额外的问题,rsession 也需要在 Conda 环境中运行。这可以通过将 rsession 包装到 rsession.sh 脚本中来实现。包装过的 rsession 可执行文件的路径可以作为命令行参数传递给 rserver。
rserver # ...
    --rsession-path=rsession.sh

最后,当使用多个用户时,必须为每个用户生成唯一的secret-cookie-key。 密钥路径可以作为命令行参数传递给 rserver。

uuid > /tmp/rstudio-server/${USER}_secure-cookie-key
rserver # ...
   --secure-cookie-key-file /tmp/rstudio-server/${USER}_secure-cookie-key

太好了!虽然我会将 www-port 设置为 8787,而不是 rstudio-server 的默认端口。 在 Conda 环境中设置 rsession-which-r 为 R 可执行文件一直给我初始化错误。使用您的答案,我现在可以在 Conda 环境中运行 rstudio-server,并且还可以正确地使用 Python 环境来使用 reticulate 包。 - Lodewic Van Twillert
谢谢,使用“--secure-cookie-key-file”选项解决了在多用户集群上通过singularity运行rocker/tidyverse时出现的问题,其中rserver会退出并显示以下错误:ERROR system error 2 (No such file or directory) [path=/tmp/rstudio-server/secure-cookie-key]; OCCURRED AT: rstudio::core:: <snip> - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接