Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實現(xiàn)示例
1 問題由來
不久前,jupyter notebook運行時出現(xiàn)了kernel error的問題,于是上網(wǎng)搜索方法,發(fā)現(xiàn)運行如下命令能夠解決問題:
python -m ipykernel install --user
本人Anaconda中自行配置了一個名為data的虛擬環(huán)境,并在此環(huán)境中安裝了諸多專門的用于數(shù)據(jù)處理的package。
問題來了:
- 某天突然發(fā)現(xiàn),雖然是從指定虛擬環(huán)境進入Notebook,但依舊無法使用
data中的庫。 - 然而,退出來運行命令
conda list查詢,可以發(fā)現(xiàn)所有想要的包就好好地躺在里面。
2 發(fā)現(xiàn)原因
知識點:雖然Jupyter Notebook是在data的虛擬環(huán)境中啟動的(Mac啟動命令為source activate environment_name)。但是它居然還可能是運行的默認環(huán)境,而不是你指定的虛擬環(huán)境,這就是問題所在。
出現(xiàn)這種問題的原因,可能就是前面命令行將設置給初始化了之類的(僅猜測)。
運行如下代碼可以查詢目前的Notebook究竟運行的是哪一個虛擬環(huán)境:
import os, sys print(sys.executable) # works this time print(sys.version) print(sys.version_info)
輸出結(jié)果如下:
>>> /Users/yj/opt/anaconda3/bin/python
>>> 3.7.4 (default, Aug 13 2019, 15:17:50)
[Clang 4.0.1 (tags/RELEASE_401/final)]
>>> sys.version_info(major=3, minor=7, micro=4, releaselevel='final', serial=0)
此時顯示的是Anaconda的默認虛擬環(huán)境,不是我想要的。
3 解決方法
通過如下命令可以查詢你計算機安裝的所有虛擬環(huán)境:
conda env list >>> # conda environments: >>> # >>> base * /Users/yj/opt/anaconda3 >>> data /Users/yj/opt/anaconda3/envs/data
這里我想要的是data這個環(huán)境。接下來要做的就是將這個環(huán)境加入到Jupyter Notebook的Kernel中。代碼及說明如下:
# 第一步,切換到想要添加的虛擬環(huán)境: conda activate data # 第二步,安裝ipykernel包 conda install ipykernel # 第三部,執(zhí)行如下命令,并確定環(huán)境的名稱(此處設置為data) python -m ipykernel install --name data
務必注意第1步必不可少。重啟Notebook,可以看到已經(jīng)有新的環(huán)境可以選擇:

重新查詢運行環(huán)境,發(fā)現(xiàn)已經(jīng)更改為自己想要的虛擬環(huán)境,終于又重新可以調(diào)用要用的包了。
>>> /Users/yj/opt/anaconda3/envs/data/bin/python >>> 3.7.5 (default, Oct 25 2019, 10:52:18) [Clang 4.0.1 (tags/RELEASE_401/final)] >>> sys.version_info(major=3, minor=7, micro=5, releaselevel='final', serial=0)
注意第一行多了個data,第二行python版本也不一樣了。
4 補充
4.1 異常處理
執(zhí)行python -m ipykernel install --name data后,出現(xiàn)[Errno 13] Permission denied: '/usr/local/share',則可以將名利修改為:
python -m ipykernel install --user --name data
顯示成功,撒花慶祝

4.2 Notebook的tab擴展失效
安裝了ipykernel包之后,有的小伙伴會出現(xiàn)tab鍵失效的問題,這里是因為jedi這個包在作怪,把它干掉就好了
pip uninstall jedi --yes
到此這篇關(guān)于Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Jupyter Notebook調(diào)用指定虛擬環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat)
這篇文章主要介紹了詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Python3爬蟲教程之利用Python實現(xiàn)發(fā)送天氣預報郵件
這篇文章主要給大家介紹了關(guān)于Python3爬蟲教程之利用Python實現(xiàn)發(fā)送天氣預報郵件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-12-12
五個簡單有效的Python清理數(shù)據(jù)腳本分享
通常情況下,在機器學習中的數(shù)據(jù)清理往往是一件令人頭疼的事情,本文整理了一份清單,列出了5個常用的Python腳本,用于自動化數(shù)據(jù)清理,需要的可以參考一下2022-09-09
Python實現(xiàn)鏈表反轉(zhuǎn)的方法分析【迭代法與遞歸法】
這篇文章主要介紹了Python實現(xiàn)鏈表反轉(zhuǎn)的方法,結(jié)合實例形式分析了Python迭代法與遞歸法實現(xiàn)鏈表反轉(zhuǎn)的相關(guān)操作技巧與注意事項,需要的朋友可以參考下2020-02-02

