在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
)快捷建立的時候它不會生成除了python2
和python3
以外的資料夾,所以最多隻能建立兩個虛擬環境。
除此之外,jupyter notebook還可以遠端執行,為了安全,你可以在遠端訪問的時候為jupyter設定一個密碼,這裡就不多講了,因為網上很多資料都寫了,有興趣的可以google一下。
參考: