1. 程式人生 > >在jupyter notebook上新增使用python虛擬環境

在jupyter notebook上新增使用python虛擬環境

在命令終端輸入jupyter notebook,那麼在瀏覽器中訪問http://localhost:8888/,就可以看到如下介面

Paste_Image.png

可以看到我這裡的執行環境是Python2和Python3,那麼怎麼新增其它環境呢?先使用conda info -e檢視我已有的虛擬環境

Paste_Image.png

現在我想在jupyter中使用名為mjpy27這個核心,怎麼辦呢?其實jupyter的ipykernel是使用一個叫kernel.json的檔案管理的,mac os 或者linux平臺可以通過

find . -name "kernel.json"

找到該檔案的位置。如下圖所示

Paste_Image.png

從圖中我們可以看到差不多有三種類型的位置,要修改哪個位置的json檔案才管用呢?眼尖的同學可以看到./Library/Jupyter/kernels/python*/kernel.json這類位置有三個json檔案,經過實驗發現需要在在./Library/Jupyter/kernels/目錄下手動建立一個資料夾,然後建立一個名為kernel.json的檔案,讓該檔案和已有的虛擬環境相關聯,即可使用該虛擬環境。該json檔案的內容大概如此:

{
 "display_name": "mjpy27", 
 "language": "python", 
 "argv": [
  "/Users/resolvewang/anaconda3/envs/mjpy27/bin/python", 
  "-m", 
  "ipykernel_launcher", 
  "-f", 
  "{connection_file}"
 ]
}

再看看我們jupyter中的直譯器核心,可以看到mjpy27被新增進去了。

可能出現kernel 失聯的問題,解決方法參考如下

升級ipykernel

pip install --upgrade ipykernel

若已安裝ipykernel,執行

conda update ipykernel

Paste_Image.png

Linux中設定方法大致和mac上相同。windows中的話,kernel.json檔案的位置位於

C:\Users\Administrator\AppData\Roaming\jupyter\kernels\python*\kernel.json

目錄下,需要多個虛擬環境,就手動建立多個python資料夾和kernel.json*檔案。

上面是從最通用的方法,其實有更加簡單的方法。如果你不想手動修改kernel.json檔案的話,可以直接為你想要的環境安裝ipykernel包。即:

conda install -n py27 ipykernel

然後啟用這個環境,輸入

python -m ipykernel install --user

這樣就可以在jupyter中使用py27這個環境了。

如果所需版本並不是已有的環境,可以直接在建立環境時便為其預裝ipykernel。

conda create -n py27 python=2.7 ipykernel

不過這兩種方式,只能為Jupyter安裝一個Python2和一個Python3的環境。從上面過程可以看到,我們手動生成kernel.json的時候,可能會建立多個python*(或者其他名字)的資料夾,但是使用上述命令(conda/pip install ipykernel)快捷建立的時候它不會生成除了python2python3以外的資料夾,所以最多隻能建立兩個虛擬環境。

除此之外,jupyter notebook還可以遠端執行,為了安全,你可以在遠端訪問的時候為jupyter設定一個密碼,這裡就不多講了,因為網上很多資料都寫了,有興趣的可以google一下。




參考: