如何将 R conda env 连接到 jupyter notebook

Kus*_*tel 5 python r conda jupyter-notebook

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

 conda create --prefix r_venv_conda r=3.3  r-essentials  r-base --y
Run Code Online (Sandbox Code Playgroud)

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

 conda activate r_venv_conda/
Run Code Online (Sandbox Code Playgroud)

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

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'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

mer*_*erv 6

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

内核模块

首先,对于作为内核运行的环境,它需要安装适当的内核包。在这种情况下,即r-irkernel,因此您需要运行

conda install -n r_venv_conda r-irkernel
Run Code Online (Sandbox Code Playgroud)

对于 Python 内核,它是ipykernel.

内核注册

其次,内核需要在 Jupyter 中注册。如果你可以通过康达安装Jupyter(说在蟒蛇基地ENV),那么我建议您使用nb_conda_kernels包装,使内核准备康达-ENVS的自动发现。这个必须安装在已经jupyter安装的环境中(你只需要一个!),例如,如果这是base,那么

conda install -n base nb_conda_kernels
Run Code Online (Sandbox Code Playgroud)

阅读文档了解详细信息

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

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

您可以在其中为name和设置自己的值displayname有关详细信息,请参阅 IRkernel

运行 Jupyter

如果使用 Conda 安装的 Jupyter,同样,它只需要安装在单个 env 中。这是运行前应该激活的环境jupyter notebook。运行后,您可以选择要使用的内核。