Jupyter Notebook調用指定的虛擬環(huán)境的實現示例
1 問題由來
不久前,jupyter notebook運行時出現了kernel error的問題,于是上網搜索方法,發(fā)現運行如下命令能夠解決問題:
python -m ipykernel install --user
本人Anaconda中自行配置了一個名為data
的虛擬環(huán)境,并在此環(huán)境中安裝了諸多專門的用于數據處理的package。
問題來了:
- 某天突然發(fā)現,雖然是從指定虛擬環(huán)境進入Notebook,但依舊無法使用
data
中的庫。 - 然而,退出來運行命令
conda list
查詢,可以發(fā)現所有想要的包就好好地躺在里面。
2 發(fā)現原因
知識點:雖然Jupyter Notebook是在data
的虛擬環(huán)境中啟動的(Mac啟動命令為source activate environment_name
)。但是它居然還可能是運行的默認環(huán)境,而不是你指定的虛擬環(huán)境,這就是問題所在。
出現這種問題的原因,可能就是前面命令行將設置給初始化了之類的(僅猜測)。
運行如下代碼可以查詢目前的Notebook究竟運行的是哪一個虛擬環(huán)境:
import os, sys print(sys.executable) # works this time print(sys.version) print(sys.version_info)
輸出結果如下:
>>> /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,可以看到已經有新的環(huán)境可以選擇:
重新查詢運行環(huán)境,發(fā)現已經更改為自己想要的虛擬環(huán)境,終于又重新可以調用要用的包了。
>>> /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
后,出現[Errno 13] Permission denied: '/usr/local/share'
,則可以將名利修改為:
python -m ipykernel install --user --name data
顯示成功,撒花慶祝
4.2 Notebook的tab擴展失效
安裝了ipykernel
包之后,有的小伙伴會出現tab鍵失效的問題,這里是因為jedi
這個包在作怪,把它干掉就好了
pip uninstall jedi --yes
到此這篇關于Jupyter Notebook調用指定的虛擬環(huán)境的實現示例的文章就介紹到這了,更多相關Jupyter Notebook調用指定虛擬環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!