在項目中我們常常需要用到多個環境,因此在JupyterNotebook中配置多個內核是我們必須要學會的。為了舉例子,我們這里利用conda創造了兩個環境分別是py3.8和py3.7.
第一步:了解Jupyter Kernel如何啟動的
當我們使用conda activate py3.8 啟動環境之后,如果當前環境中安裝了jupyter和ipykernel兩個包,我們就可以使用命令:jupyter notebook,在當前環境啟動jupyter服務。此時在網頁右上角中我們可以看到創建Notebook的地方出現了Python3(ipykernel),這意味着此時創建的jupyter notebook文件默認的內核是py3.8環境的內核(其實很容易想到,因為我們啟動jupyter notebook這個服務就是在py3.8這個環境下啟動的所以默認的內核自然應該是py3.8的)。
第二步:創建新內核
如果我們想要使用其他的環境,意味着我們需要重新conda activate 環境名,再啟動jupyter notebook服務,再創建Notebook,這一套操作十分麻煩,有沒有更簡單的呢?如果可以在同一個jupyter notebook服務鏈接到其他環境內核(不再使用默認的內核)是不是就可以不用這么麻煩了呢?
按照本文的例子,我現在想要在py3.8的環境里,創建Notebook時使用py3.7的內核。該怎么操作呢?
首先,啟動py3.7環境(conda activate py3.7 ),並且在該環境(py3.7)下安裝jupyter和ipykernel兩個包。接下來我們需要使用命令行將當前環境內核(py3.7)添加到.local/share/jupyter/kernels/配置文件中,在任何環境里啟動的jupyter都是可以看到該配置文件,因此只要把內核環境(此處是py3.7)注冊到這個文件中,接下來無論在什么環境啟動jupyter notebook服務都是可以該內核的。命令行如下:
python -m ipykernel install --user --name py3.7(這里名字可以隨便取可以是hello等)
如果順利,會返回以下命令:
這時候就能說明該環境(py3.7)已經注冊到.local/share/jupyter/kernels/配置文件中了。這里要注意,命令行中--name 后面名字可以隨便寫,但是我們一定要在指定環境中輸入以上命令行,如果你在python3.6環境中輸入,此時注冊的就是python3.6的內核(雖然內核名字叫做py3.7)。如果你在python3.9環境輸入以上命令行,此時注冊的就是3.9內核。
第三步:重啟Jupyter服務
重啟jupyter服務之后(刷新頁面也可以),我們就可以看到此處已經有其他的內核選項了。此時就說明內核添加成功了。
第四步:其他常用命令
這里提供一些其他常用的命令。
查看當前可用的kernel:
jupyter kernelspec list
使用這個命令需要注意,看下我的結果。
箭頭所指的環境是指當前環境下的jupyter內核,而從py3.7內核(第一行)的路徑可以知道這個是公用的(根據前面的解釋可以知道已經注冊到了.local/share/jupyter/kernels/配置文件中),任何環境下都能看到這個py3.7這個內核。而第二行python3的這個內核其實就是當前環境的默認內核(如果你conda activate 其他環境,這里會變的)。
刪除kernel:
jupyter kernelspec remove 內核名
參考網站:
為Jupyter notebook增加新的kernel_imbabao的博客-CSDN博客_jupyter 設置kernel
[Errno 13] Permission denied:’/usr/local/share/jupyter’_我是菜菜龍呀的博客-CSDN博客