Python開發環境—— jupyter Notebook 安裝使用
- 2019 年 12 月 4 日
- 筆記
前篇學習爬蟲的基礎介紹中,推薦了 Python 的科學計算髮行版本
Anaconda
,其中集成了一個非常好用的Python開發工具——jupyter Notebook
。
這篇說一下 Linux 下配置一個 Python 的 jupyter Notebook
並可以外網訪問進行開發的方法,這樣就可以隨時輕鬆的使用 jupyter Notebook
進行pythob的開發學習,十分方便。
安裝 Anaconda
這一部分上一篇已經說過了,這裡再說一下。
anaconda 官網 – 是Python的一個科學計算的發行版。
這裡以官方最新版本(18/1/10)3-5.0.1
為例,通過安裝腳本安裝(Ubuntu環境)。
事實上,win下的安裝更為簡單,也可以配合PyCharm食用更佳。
因為資源在國外,所以下載速度很慢,可以使用清華大學鏡像源
$ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.1-Linux-x86_64.sh $ bash Anaconda3-5.0.1-Linux-x86_64.sh
下載並執行腳本後,按照提示逐步安裝。
注意: Anaconda
和 jupyter Notebook
在Linux環境下都不推薦使用root權限,因此最好使用其他用戶進行安裝。
配置 jupyter Notebook
生成一個 notebook 配置文件
默認情況下,配置文件 ~/.jupyter/jupyter_notebook_config.py
並不存在,需要自行創建。使用下列命令生成配置文件:
$ jupyter notebook --generate-config
如果是 root 用戶執行上面的命令,會發生一個問題:
Running as root it not recommended. Use --allow-root to bypass.
提示信息很明顯,root 用戶執行時需要加上 --allow-root
選項。
$ jupyter notebook --generate-config --allow-config
執行成功後,會出現下面的信息:
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
生成密碼
如果要外網訪問 jupyter Notebook
則需要一個密碼,這裡推薦直接生成的方法
從 jupyter notebook 5.0
版本開始,提供了一個命令來設置密碼:jupyter notebook password
,生成的密碼存儲在 jupyter_notebook_config.json
。
$ jupyter notebook password Enter password: **** Verify password: **** [NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json
使用 vim
或其他的編輯器打開文件,複製 " "
中的內容,將其放入後面需要修改的配置文件中
修改配置
在 jupyter_notebook_config.py 中找到下面的行,取消注釋並修改。
c.NotebookApp.ip='*' c.NotebookApp.password = u'sha:ce...剛才複製的那個密文' c.NotebookApp.open_browser = False c.NotebookApp.port =8888 #可自行指定一個端口, 訪問時使用該端口
提示: 可以使用 vi/vim
的查找指令,參看——Vim勉強入個門 。
以上設置完以後就可以在服務器上直接輸入 jupyter notebook
啟動, root 用戶使用 jupyter notebook --allow-root
。
常見錯誤提示
正常進入 jupyter notebook 登陸後提示404
解決方法,更換啟動指令時的目錄,然後重新啟動。
創建新項目出錯 Unexpected error while saving file: Untitled.ipynb [Errno 13]
給予指定目錄可寫入權限(推薦變更所有者為當前用戶,若未生效則給與755/777所有用戶權限)
$ sudo chown raphael /home/raphael/ -R $ sudo chmod 755 /home/raphael/.local
重新安裝到Docker
安裝完成之後,發現關閉當前 session 後, jupyter notebook
就會退出,於是我第一個想到的方法是傳統的 screen
,但是轉念一想,為什麼不使用 Docker
呢?
整理一下思路,安裝流程應該是,基於 ubuntu 鏡像創建容器,安裝 Anaconda
(需要注意root權限),配置 jupyter notebook
,指定端口,外網訪問並使用。然而實際上並不需要這麼複雜!
為啥捏~( ̄▽ ̄)~*?因為 anaconda 官方給用戶提供了 Docker
鏡像,地址 continuumio/anaconda3
So,let』s do this!
$ docker pull continuumio/anaconda3 $ docker run -i -t continuumio/anaconda3 /bin/bash $ docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"
兩天推薦的啟動指令,一個是直接啟動 anaconda3
,而最後一條指令是啟動容器並啟動 jupyter notebook
。
執行最後條指令,發現提示root權限問題,加上 --allow-root
試試,因為本身就是只運行 anaconda3
和 jupyter notebook
的容器,不存在其他用戶使用的情況,所以也就無所謂。

如上圖中,暴露了 token
,輸入上述地址可以直接打開,或者直接訪問,然後輸入 token
當然,也可以使用密碼,大家自行按照使用需求來解決。