【问题标题】:How to connect R conda env to jupyter notebook如何将 R conda env 连接到 jupyter notebook
【发布时间】:2020-08-13 02:28:45
【问题描述】:

我正在使用以下代码创建 conda 环境

 conda create --prefix r_venv_conda r=3.3  r-essentials  r-base --y

然后我通过以下方式激活这个环境

 conda activate r_venv_conda/

然后我尝试运行 Jupyter Notebook(通过运行 jupyter notebook 来运行 jupyter 希望能够连接 R 环境。但是,我收到以下错误

Traceback (most recent call last):
  File "/home/Documents/project/r_venv_conda/bin/jupyter-notebook", line 7, in <module>
    from notebook.notebookapp import main
  File "/home/Documents/project/r_venv_conda/lib/python3.6/site-packages/notebook/__init__.py", line 25, in <module>
    from .nbextensions import install_nbextension
  File "/home/Documents/project/r_venv_conda/lib/python3.6/site-packages/notebook/nbextensions.py", line 26, in <module>
    from .config_manager import BaseJSONConfigManager
  File "/home/Documents/project/r_venv_conda/lib/python3.6/site-packages/notebook/config_manager.py", line 14, in <module>
    from traitlets.config import LoggingConfigurable
  File "/home/Documents/project/r_venv_conda/lib/python3.6/site-packages/traitlets/config/__init__.py", line 6, in <module>
    from .application import *
  File "/home/Documents/project/r_venv_conda/lib/python3.6/site-packages/traitlets/config/application.py", line 38, in <module>
    import api.helper.background.config_related
ModuleNotFoundError: No module named 'api'

我该如何解决这个问题?

【问题讨论】:

    标签: python r jupyter-notebook conda


    【解决方案1】:

    Jupyter 不会自动识别 Conda 环境,无论是否激活。

    内核模块

    首先,要使环境作为内核运行,它需要安装适当的内核包。在这种情况下,就是r-irkernel,所以你需要运行

    conda install -n r_venv_conda r-irkernel
    

    对于 Python 内核,它是 ipykernel

    内核注册

    其次,内核需要注册到 Jupyter。如果你通过 Conda 安装了 Jupyter(比如在 Anaconda base env 中),那么我建议使用 the nb_conda_kernels package,它可以自动发现内核就绪的 Conda-envs。这必须安装在已安装jupyter 的环境中(您只需要一个!),例如,如果这是base,那么

    conda install -n base nb_conda_kernels
    

    read the docs for details

    如果您使用的是系统级安装的 Jupyter(即不是由 Conda 安装),那么您需要手动注册您的内核。

    conda activate r_venv_conda
    Rscript -e 'IRkernel::installspec(name="ir33", displayname="R 3.3")'
    

    您可以在其中为namedisplayname 设置自己的值。 See IRkernel for details.

    运行 Jupyter

    再次,如果使用 Conda 安装的 Jupyter,只需将其安装在单个环境中。这是在运行jupyter notebook 之前应该激活的环境。运行后,选择要使用的内核。

    【讨论】:

      【解决方案2】:

      我发现最适合我的方法是

      conda create -n viper r python=3.8.8 #check your conda python version
      conda activate viper
      conda install -c r r-essentials
      

      这将设置那些有用的 r 包,您可以稍后安装更多。并授予对 r-Kernel 的访问权限。

      【讨论】:

        【解决方案3】:

        我使用这些 bash 命令创建 R 环境并将其连接到 jupyter 会话:

        # 1. pick a name for the conda environment
        name='r_env'
        # 2. create the environment
        conda create -n $name r-essentials r-base 
        # 3. install `irkernel` and `devtools` for `IRkernel/repr`
        conda install -c conda-forge r-devtools r-irkernel
        # 4. setup `irkernel`
        Rscript -e 'IRkernel::installspec(name="$name", displayname="$name")'
        # 4. install and setup `IRkernel/repr` (for displaying help messages in jupyter)
        Rscript -e 'devtools::install_github("IRkernel/repr")'
        

        【讨论】:

          猜你喜欢
          • 2016-07-22
          • 2016-09-22
          • 1970-01-01
          • 2016-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-14
          相关资源
          最近更新 更多