【问题标题】:How to create new Anaconda Environments within JupyterHub and bind a Environment to a new Jupyter- Notebook?如何在 JupyterHub 中创建新的 Anaconda 环境并将环境绑定到新的 Jupyter-Notebook?
【发布时间】:2021-06-07 08:54:52
【问题描述】:

我使用 Docker 容器安装了 JupyterHub。

当我登录 Web 界面时,我看到以下环境选项:

加载一段时间后,我看到启动器选项卡如下:

现在,我想创建一些新的 Anaconda 环境(MyDevEnvPy3.7、MyTestEnvPy3.7、MyDevEnvPy3.8、MyTestEnvPy3.8),并启动一个新的 JupyterNotebook,它正好使用上面提到的这些 Anaconda 环境之一。

我的想法是,我可以为每个 Anaconda 环境配置不同的包和 python 版本(即 3.7 或 3.8)。

特别是在这种情况下,如果我需要升级一些 Python 包,即在我的 MyDevEnvPy3.7 中,我想先在 MyTestEnvPy3.7 中升级 Python 包,看看我的代码是否仍在运行。然后我想使用 MyDevEnvPy3.7 来做这样的事情。

我该怎么做?

甚至有可能吗? 到目前为止,我只使用过 Anaconda Navigator。 Anaconda Navigator 是我的起点,我首先在“环境”选项卡中配置了我的环境,然后切换到“主页”选项卡,选择要使用的 Anaconda 环境并启动 Jupyter Notebook(使用此环境)。但是现在在 JupyterHub 中,我不知道使用特定 Anaconda 环境启动 Jupyter Notebook 的最佳做法是什么......

【问题讨论】:

    标签: python-3.x jupyter-notebook anaconda jupyter jupyterhub


    【解决方案1】:

    我终于设法创建了不同的 Anaconda 环境:

    1. 在启动器选项卡中打开“终端”

    2. 粘贴以下命令:

      # Creates a new Anaconda Environment called "MyDevEnvPy3.7" using Python Version 3.7 
      # in silent mode (parameter "-y")
      conda create -n MyDevEnvPy3.7 python=3.7 -y
      
      # Activates the new created Anaconda Environment "MyDevEnvPy3.7"
      conda activate MyDevEnvPy3.7
      
      # Installs "ipykernel" in active Anaconda Environment "MyDevEnvPy3.7" in silent mode
      conda install ipykernel -y
      
      # Installs new Kernel called "MyDevEnvPy3.7" in Anaconda Environment "MyDevEnvPy3.7"
      python -m ipykernel install --user --name MyDevEnvPy3.7 --display-name="MyDevEnvPy3.7"
      
      # Deactivates the new created Anaconda Environment "MyDevEnvPy3.7"
      conda deactivate
      
      
      
      # Creates a new Anaconda Environment called "MyTestEnvPy3.7" using Python Version 3.7
      # in silent mode (parameter "-y")
      conda create -n MyTestEnvPy3.7 python=3.7 -y
      
      # Activates the new created Anaconda Environment "MyTestEnvPy3.7"
      conda activate MyTestEnvPy3.7
      
      # Installs "ipykernel" in active Anaconda Environment "MyTestEnvPy3.7" in silent mode
      conda install ipykernel -y
      
      # Installs new Kernel called "MyTestEnvPy3.7" in Anaconda Environment "MyTestEnvPy3.7"
      python -m ipykernel install --user --name MyTestEnvPy3.7 --display-name="MyTestEnvPy3.7"
      
      # Installs "numpy" in active Anaconda Environment "MyTestEnvPy3.7" in silent mode
      conda install numpy -y
      
      # Deactivates the new created Anaconda Environment "MyTestEnvPy3.7"
      conda deactivate
      
      
      
      # Creates a new Anaconda Environment called "MyDevEnvPy3.8" using Python Version 3.8
      # in silent mode (parameter "-y")
      conda create -n MyDevEnvPy3.8 python=3.8 -y
      
      # Activates the new created Anaconda Environment "MyDevEnvPy3.8"
      conda activate MyDevEnvPy3.8
      
      # Installs "ipykernel" in active Anaconda Environment "MyDevEnvPy3.8" in silent mode
      conda install ipykernel -y
      
      # Installs new Kernel called "MyDevEnvPy3.8" in Anaconda Environment "MyDevEnvPy3.8"
      python -m ipykernel install --user --name MyDevEnvPy3.8 --display-name="MyDevEnvPy3.8"
      
      # Deactivates the new created Anaconda Environment "MyDevEnvPy3.8"
      conda deactivate
      
      
      
      # Creates a new Anaconda Environment called "MyTestEnvPy3.8" using Python Version 3.8
      # in silent mode (parameter "-y")
      conda create -n MyTestEnvPy3.8 python=3.8 -y
      
      # Activates the new created Anaconda Environment "MyTestEnvPy3.8"
      conda activate MyTestEnvPy3.8
      
      # Installs "ipykernel" in active Anaconda Environment "MyTestEnvPy3.8" in silent mode
      conda install ipykernel -y
      
      # Installs new Kernel called "MyTestEnvPy3.8" in Anaconda Environment "MyTestEnvPy3.8"
      python -m ipykernel install --user --name MyTestEnvPy3.8 --display-name="MyTestEnvPy3.8"
      
      # Installs "numpy" in active Anaconda Environment "MyTestEnvPy3.8" in silent mode
      conda install numpy -y
      
      # Deactivates the new created Anaconda Environment "MyTestEnvPy3.8"
      conda deactivate
      
    3. 选择“文件”-->“新建启动器”

    4. 现在,您应该看到 4 个新的 Anaconda 环境:

    5. 通过在 Notebook 部分选择所需的 Anaconda 环境,将启动一个新的 Jupyter Notebook,并绑定到所选的 Anaconda 环境。

      让我们检查一下:

      如右上方所示,当前选择的 Anaconda Environment 是 MyDevEnvPy3.7。我们期待 Python 版本 3.7,并且无法导入 numpy,因为它之前没有安装在这个 Anaconda 环境中。

      从右上角可以看到,当前选择的 Anaconda Environment 是 MyTestEnvPy3.7。我们期望 Python 版本 3.7,并且可以导入 numpy,因为它之前已安装在此 Anaconda 环境中。

      如右上方所示,当前选择的 Anaconda Environment 是 MyDevEnvPy3.8。我们期待 Python 版本 3.8,并且无法导入 numpy,因为它之前没有安装在这个 Anaconda 环境中。

      在右上角可以看到,当前选择的 Anaconda Environment 是 MyTestEnvPy3.8。我们期待 Python 版本 3.8,并且可以导入 numpy,因为它之前已安装在此 Anaconda 环境中。

    【讨论】:

    【解决方案2】:

    这几乎是 Jupyter/IPython 提供的标准功能,技术上称为“添加新内核”。请按照以下步骤(在 shell 终端中):

    1. 假设您有一个名为 MyTestEnvPy3.8 的 conda env。激活这个环境。

    2. 在要添加到 Jupyter 的 conda 环境中安装 ipykernel

      $ conda install ipykernel
      
    3. 安装内核

      $ python -m ipykernel install --user --name test --display-name "MyTestEnvPy3.8"
      

      您可以随时更改name(此内核在您的 jupyter 目录中的显示方式)和display-name(它在 JupyterLab 的“选择内核”窗口中的显示方式)。

    4. 检查是否安装成功:

      $ jupyter kernelspec list
      

    现在您可以在 JupyterLab 的“选择内核”窗口中找到您安装的内核。与您称为“启动器”的接口是 JupyterLab 的启动窗口。 JupyterHub 托管多个 Jupyter 服务器,一旦您从它启动 JupyterLab,您就进入了 JupyterLab 的世界!

    没有“将内核与笔记本绑定”之类的东西,笔记本只是一种文件格式,当你在 JupyterNotebook 或 JupyterLab 界面中打开它时,你可以随时在内核之间切换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多