Linux

JupyterLab 整合多 Conda 環境不同版本 Python、R 語言教學

介紹如何使用 nb_conda_kernels 管理多個 Conda 環境下的 Jupyter 核心,整合多 Conda 環境下的 Python 或 R 等語言。

nb_conda_kernels 是一個 Jupyter 的擴充功能(extension),可以管理多個 Conda 環境下的 Jupyter 核心(kernels),整合多 Conda 環境中各種不同版本的 Python 或 R 等語言。

安裝 nb_conda_kernels

nb_conda_kernels 必須安裝在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 環境中,可以直接放在 base 環境中,或是另外建立獨立的 Conda 環境亦可。

這裡我們建立一個新的 Conda 環境,專門用於放置 JupyterLab:

# 建立 Conda 環境,並安裝 JupyterLab
conda create --name jupyter_env python=3.7 jupyterlab

在此 Conda 環境加裝 nb_conda_kernels 擴充功能套件:

# 安裝 nb_conda_kernels 擴充功能套件
conda install --name jupyter_env nb_conda_kernels

安裝 Jupyter 核心(Kernels)

所有需要在 Jupyter 中透過 nb_conda_kernels 來使用 Conda 環境,都需要安裝對應語言的 Jupyter 核心(kernels)。

建立一個 Python 3.8 的 Conda 環境:

# 建立 Python 3.8 的 Conda 環境
conda create --name py38_env python=3.8

# 安裝 Python 的 Jupyter 核心
conda install --name py38_env ipykernel

建立一個 R 3.5 的 Conda 環境:

# 建立 R 3.5 的 Conda 環境
conda create --name r35_env --channel r r-essentials=3.5 r-base=3.5

# 安裝 R 的 Jupyter 核心
conda install --name r35_env --channel r r-irkernel

QIIME2 的 Conda 環境也可以透過 nb_conda_kernels 來使用,不過 QIIME2 的 Jupyter 伺服器擴充功能(互動圖形)在這裡會無法使用:

# 下載套件定義檔
wget https://data.qiime2.org/distro/core/qiime2-2019.10-py36-linux-conda.yml

# 建立 QIIME2 的 Conda 環境
conda env create -n qiime2-2019.10 --file qiime2-2019.10-py36-linux-conda.yml

啟動 JupyterLab

安裝好所有的 Conda 環境以及對應的 Jupyter 核心之後,就可以依照一般的方式啟動 JupyterLab:

# 載入 Jupyter 的 Conda 環境
conda activate jupyter_env

# 啟動 JupyterLab
jupyter lab

在 JupyterLab 中就會出現各種 Conda 環境以及不同語言核心的 Jupyter Notebook:

JupyterLab 各種 Conda 環境與語言版本

這樣就可以在單一個 JupyterLab 界面中同時使用不同 Conda 環境下的各種語言與版本了。

JupyterLab 各種 Conda 環境與語言版本

參考資料:nb_condaIPythonParametric ThoughtsJupyterStack Overflow

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago