很多使用jupyter的同學(xué)會遇到這樣一個問題,在anaconda中創(chuàng)建了多個環(huán)境菇曲,啟動jupyter notebook后嗡午,在new的下拉菜單中卻找不到。本文就解決這樣的問題稠肘。
添加多個環(huán)境
我anaconda默認的是python3福铅,但還有一個python2的自定義的環(huán)境,命名為myPython2项阴。
打開jupyter notebook發(fā)現(xiàn)只有python3可用滑黔,而我想使用myPython2這個環(huán)境卻找不到。
首先环揽,在anaconda中切換到myPython2環(huán)境下略荡,確認是否安裝了
ipykernel
這個包,如果沒有則安裝歉胶。然后汛兜,在這個環(huán)境下輸入一下命令
# xxx是在jupyter中顯示的名字,建議使用環(huán)境的名字通今,但是不一樣也沒關(guān)系
# 我這里和環(huán)境名字一樣粥谬,使用myPython2這個名字
python -m ipykernel install --name XXXX
- 然后啟動jupyter肛根,會發(fā)現(xiàn)現(xiàn)在有了myPython2這個選項了!
增加后的樣子如圖所示:
在第二步中漏策,linux環(huán)境下可能會遇到權(quán)限不足的問題派哲,需要sudo權(quán)限。但是使用了sudo權(quán)限后掺喻,默認的python就不是環(huán)境中的python了芭届,可以使用which python
來查看。兩個方法:
查找python的具體位置
# 這里我們手動告知python的路徑
/home/test/anaconda2/envs/myPython2/bin/python -m ipykernel install --name myPython2
生成配置
類似于其他可以自定義配置的軟件一樣感耙,Jupyter Notebook也有自己的配置文件喉脖,但是默認是不存在的,需要我們自己手動生成抑月。我們可以使用以下命令生成配置文件树叽。
# linux和mac系統(tǒng)打開終端
# windows系統(tǒng)打開anaconda自帶的終端
jupyter notebook --generate-config
根據(jù)系統(tǒng)不同生成的文件所在位置也不同,mac和linux系統(tǒng)都在~/.jupyter目錄下谦絮,windows也在當(dāng)前用戶目錄下的.jupyter目錄题诵。名稱為jupyter_notebook_config.py,幾乎所有的配置都是在這一個文件中完成层皱。
個性化配置(遠程登錄)
有了配置文件性锭,我們就可以就可以進行個性化配置。使用編輯器打開配置文件叫胖,如果想要改變默認目錄草冈,在文件中搜索c.NotebookApp.notebook_dir,在后邊填寫你期望的默認目錄瓮增。如果你想改變端口怎棱,搜索NotebookApp.port更改即可。注意绷跑,默認這些配置都是被注釋掉的拳恋,你在更改后必須去掉這行前邊的#符號。
有時候我們想讓Jupyter Notebook運行在服務(wù)器上砸捏,但是我們又想在本機通過瀏覽器操作谬运,如何實現(xiàn)呢?
首先垦藏,我們?yōu)檫h程的Jupyter Notebook創(chuàng)建密碼梆暖,打開IDE或者命令行,輸入如下命令:
from notebook.auth import passwd
passwd()
# 此時需要輸入兩次密碼(一次設(shè)置掂骏,一次確認)轰驳,然后生成sha1的密文,拷貝下來。
# Enter password: ········
# Verify password: ········
# sha1:b11ba7ae862e:6eeb922ef6b770e43a1c90922ba341faaaaaaaa
如果提示notebook模塊不存在滑废,那么使用conda install noteobok來安裝蝗肪。
輸入passwd()后需要兩次鍵入密碼,之后會產(chǎn)生一段密文蠕趁,復(fù)制這段密文(包含sha1:)薛闪,找到下列行,修改配置文件如下:
c.NotebookApp.ip='*' # 允許所有ip訪問
c.NotebookApp.password = u'sha1:...剛才復(fù)制的那個密文'
c.NotebookApp.open_browser = False # 是否打開瀏覽器
c.NotebookApp.port = 8888 #指定端口
之后俺陋,在服務(wù)器上使用jupyter notebook啟動豁延,然后本機通過http://address_of_remote:8888遠程訪問即可,登錄界面需要輸入設(shè)置的密碼腊状。
權(quán)限控制诱咏,實現(xiàn)多個用戶工作空間不同,同時使用
使用
jupyter notebook --generate-config
命令生成配置文件缴挖。
打開python 命令行袋狞,輸入下面兩條命令并輸入密碼三次,生成sha1秘鑰
from notebook.auth import passwd
passwd()
然后編輯配置文件
vim ~/.jupyter/jupyter_notebook_config.py
添加:
c.NotebookApp.ip='*' # * 代表所有iP都能訪問 映屋,也可以指定ip
c.NotebookApp.password = u'sha1:ce...' # 剛才復(fù)制的那個密文
c.NotebookApp.open_browser = False # 禁止自動打開瀏覽器
c.NotebookApp.port =8888 #指定一個端口
c.NotebookApp.notebook_dir = '/home/user/user1' #指定工作空間
c.PAMAuthenticator.encoding = 'utf8' #指定utf-8編碼苟鸯,解決讀取中文路徑或者文件亂碼問題
一開始設(shè)置完的時候發(fā)現(xiàn)jupyter會因為亂碼讀取中文路徑或者文件失敗,后來發(fā)現(xiàn)
c.PAMAuthenticator.encoding = 'utf8' 可以指定讀取文件名的編碼方式棚点,完美解決早处。
然后使用 jupyter notebook 命令開啟服務(wù),就能在window 本地使用 ip:端口 的的地址登錄jupyter了 瘫析。
root 用戶需使用以下命令
jupyter notebook --allow-root
第一次需要輸入密碼就是剛才設(shè)置的密碼砌梆。
上面的操作做完,可以多個用戶使用了 但是工作空間只有一個贬循,且只能一個人去開啟服務(wù)咸包,不能關(guān)閉,這點有點但疼痛甘有。
實現(xiàn)多用戶
首先添加linux 用戶
useradd user2
passwd user2
然后登錄user2
重復(fù)上面的操作诉儒,生成配置文件,并修改配置文件
注意端口號和工作空間不能跟上面一樣就好了亏掀。
然后運行命令
jupyter notebook
發(fā)現(xiàn)報錯,忘了截圖了泛释,大概意思是/run/user/0/ 的權(quán)限問題
切換root 用戶或者sudo 命令
chmod 777 /run/user/0/jupyter
chmod 777 -R /run/user/0/jupyter
chmod 777 -R /run/user/0/
一開始沒有成功滤愕,后來多輸了幾條命令運行成功,命令不太熟悉怜校,這里都放上供參考间影。
成功運行 !然后打開瀏覽器輸入地址就可以了茄茁。