問題的起因在于我并不是我們組服務器的管理員以及師兄不定期更新base中的R版本屿附,這些都給我造成了很多bug郎逃。之前對這些bug視而不見,因為總能夠通過一些彎彎繞繞的方法解決挺份,但最近寢室網太差褒翰,耐心確實是少了點的我決定還是解決一下吧,孩子真的心累了~~~
- 我的需求是:想要在不同的R版本下運行jupyter notebook
- 我之前的操作是:通過在不同環(huán)境中切換打開jupyter notebook才能運行該環(huán)境中的R
- 經驗總結:
首先,確認base中安裝的R版本优训,并新建虛擬環(huán)境以及在新的環(huán)境中下載R
# 新建虛擬環(huán)境
conda create -n r4.1 r=4.1.0
# 激活虛擬環(huán)境
conda activate r4.1
# 退出虛擬環(huán)境
conda deactivate r4.1
接著朵你,需要確保在base環(huán)境和虛擬環(huán)境中都下載了jupyter notebook
conda install jupyter notebook
# jupyter notebook的配置只在base環(huán)境中進行,以確保所有環(huán)境都能運行jupyter notebook
jupyter notebook --generate-config # 生成配置文件
python # 打開python
from notebook.auth import passwd
passwd() # 生成密鑰
vim .jupyter/jupyter_notebook_config.py # 修改配置文件
c.NotebookApp.ip='*'
c.NotebookApp.passwd=u'剛才生成的密鑰'
c.NotebookApp.open_browser=False
c.NotebookApp.port=自己設置一個端口揣非,不要設置8888
c.NotebookApp.allow_remote_access=True
然后抡医,在base環(huán)境和虛擬環(huán)境中為jupyter notebook添加Rkernel
install.packages("IRkernel")
IRkernel::installspec()
# 為了區(qū)分base環(huán)境和虛擬環(huán)境當中的Rkernel以及防止相同名稱的覆蓋,需要給一個環(huán)境的Rkernel更改名稱
IRkernel::installspec(name="ir_base",displayname="R_base")
最后妆兑,通過運行命令行以及打開jupyter notebook查看是否配置正確
# 查看環(huán)境當中的所有kernel
jupyter kernelspec list
# 刪除某個kernel
jupyter kernelspec remove kernelname
# 運行并網頁打開jupyter notebook
jupyter notebook
查看環(huán)境當中的kernel
配置好的Rkernel