【问题标题】:How can I use Conda environments with RStudio Server?如何将 Conda 环境与 RStudio Server 一起使用?
【发布时间】:2019-02-22 04:47:59
【问题描述】:

对于我的数据科学项目,我使用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 配置选项,但是这样我不能轻松地在环境之间切换。

【问题讨论】:

    标签: r conda rstudio-server


    【解决方案1】:

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

    工作原理:

    您可以在非守护模式下启动 rstudio-server(类似于jupyter notebook) 康达环境。

    > 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。可以将秘密 cookie 密钥的路径作为命令行参数传递给 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](support.rstudio.com/hc/en-us/articles/…) 设置为 R 可执行文件一直给我初始化错误。使用您的答案,我现在可以在 Conda 环境中运行 rstudio-server,该环境也将正确使用 Python 环境与 reticulate 包一起使用。
    • 谢谢,使用 --secure-cookie-key-file 选项修复了在 rserver 退出的多用户集群上通过奇异点运行 rocker/tidyverse 的问题:ERROR system error 2 (No such file or directory) [path=/tmp/rstudio-server/secure-cookie-key]; OCCURRED AT: rstudio::core:: <snip>
    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多