我对conda环境和jupyterhub之间的关系有点困惑。
正如jupyterhub文档所述,它可以从conda安装。因此,可以使用某些conda环境(例如,环境"root")并从它执行“”。
在同样的环境下,将“活”的朱庇特。在此环境中安装nb_conda可以在笔记本中选择内核和其他conda环境。
我的问题是关于软件,如and扩展和ipywidget。他们应该在哪里?在与jupyterhub相同的环境中,还是在新笔记本的环境中?
发布于 2019-08-20 21:19:57
conda和jupyter之间的关系可能是一个混乱的关系。将conda视为您的环境,将jupyter视为任何其他包。一个包,您可以使用该包启动进程,然后提供服务。
要回答您的问题,它们应该安装在您的conda环境中。不幸的是,它比这要复杂一些。所有用户都可以使用这些扩展。我个人还没有在不同的环境中测试过一个拥有更多扩展的用户(如果可能的话,但如果可能的话,我会更新答案)。
要安装jupyter_contrib_nbextensions笔记本扩展,需要三个步骤。首先,需要安装Python包。然后,笔记本扩展本身需要复制到木星数据目录。最后,可以通过使用内置的木星命令启用已安装的笔记本扩展,也可以通过使用jupyter_nbextensions_configurator服务器扩展来更方便地启用该扩展,该扩展是作为此回购的依赖项安装的。
conda install -c conda-forge jupyter_contrib_nbextensions然后使用--sys-prefix,这是很好的。从医生那里:
将
--sys-prefix安装到python的sys.prefix中,例如在虚拟环境中很有用,比如使用conda。
因此,要添加一个扩展,流程应该如下所示:
$ sudo su -
$ pip install fileupload
$ jupyter nbextension install --sys-prefix --py fileupload
$ jupyter nbextension enable fileupload --py --sys-prefix因为标题是询问conda环境,所以我也会讨论这个问题。我已经在Ubuntu18.04LTS上测试了这些方法。
通常,您会希望允许用户共享用户创建的环境,而不允许用户访问根权限。您有两个很好的选项,我已经看到(有人请评论,如果您知道其他方法):1)共享一个环境,2)复制一个环境的需求文件。不要忘记,您还必须添加环境作为内核。
方法1-共享环境
在共享位置创建一个环境,然后让两个用户将其作为内核添加。
conda create -p /home/envs/test --clone root可以克隆根以复制根env,也可以复制基环境的基。/home/envs/test将在"envs“目录中创建一个"test”环境。确保env对将要使用这些文件的用户具有所有必要的权限。
从那里作为另一个用户,只需添加环境作为内核。
$ sudo su - <user-to-install-kernel-to>
$ conda activate <test>
$ python -m ipykernel install --user --name test \
--display-name "Python (test)"注意..。我相信我必须手动更新内核规范才能使它指向正确的python环境♂️。
方法2
或者,只创建环境的副本。
$ conda env export --name test > environment.yml
$ sudo su - customer
$ conda env create --name cust-env-copy --file environment.yml
$ python -m ipykernel install --user --name cust-env-copy \
--display-name "Python (test)"https://stackoverflow.com/questions/48301865
复制相似问题