業餘時間,偶爾接觸了python,感受python很優雅,遂研究一下。基於elk報警器elastalert的微信企業號插件html
以前一直用的sublime text 3 , 可是對於控制檯輸入(2.x raw_input,3.x input)支持不太好,雖然能夠經過sublimeREPL
->python
->execfile(filepath)
實現,可是無疑更繁瑣(可使用sublime 的key bindings,定義快捷鍵來觸發,可是仍是以爲繁瑣),並且使用sublime+python
切換python版本也不方便(網上不少資料是基於python2.x),可是python3的文章資料也愈來愈多,學習時常常須要切換很不方便python
通過一番搜索,最後決定使用Anaconda Anaconda是Python衆多發行版中很是適用於科學計算的版本,裏面已經集成了不少優秀的科學計算Python庫,開源且免費,全平臺支持:linux,mac,windows;支持python 2.x,3.x,Anaconda集成了jupyter notebook ,可使用 try it in your browser 進行體驗。linux
官方安裝包 www.continuum.io/downloads ,可是國內比較慢,可使用清華鏡像 ,從 mirrors.tuna.tsinghua.edu.cn/anaconda/ar… 下載安裝包。目前(2017-07-02)最新的是 Anaconda3-4.4.0-*
nginx
我下載的是windows 64位版Anaconda3-4.4.0-Windows-x86_64.exe(若是用於機器學習(e.g. Tensorflow) 建議使用Linux系統,具體參見 Keras安裝和配置指南(Windows))。git
同時推薦 李金的 《中文 Python 筆記》 ,github 打開.ipynb 較慢,推薦使用NbViewer 查看github
參考 Managing Python 或者 Anaconda多環境多版本python配置指導web
打開 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
運行 Anaconda Prompt
json
更多可參閱 conda 使用清華大學開源軟件鏡像 或者 清華鏡像segmentfault
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes複製代碼
參考 stackoverflow 上 how to change jupyter start folder? 的回答windows
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
運行 Anaconda Prompt
jupyter notebook --generate-config
C:\Users\{用戶名}\.jupyter\jupyter_notebook_config.py
#c.NotebookApp.notebook_dir = ''
爲 c.NotebookApp.notebook_dir = '你的默認路徑'
C:\Users\{用戶名}\Anaconda3\Scripts
jupyter-notebook.exe
併發送到桌面快捷方式
右鍵
->屬性
->更改圖標(C)...
->{Anaconda3_home}\Menu\jupyter.ico
輸入
print('hello jupyter')複製代碼
按 Ctrl+Enter 運行,結果以下
具體快捷鍵,參見 Help
-> Keyboard Shortcuts
conda create -n python27 python=2.7 -y
activate python27複製代碼
參考 Anaconda3 Python 3 和 2 in Jupyter Notebook共存方法
conda install ipykernel -y複製代碼
複製${Anaconda3_home}\share\jupyter\kernels\python3
並重命名爲${Anaconda3_home}\share\jupyter\kernels\python27
,編輯${Anaconda3_home}\share\jupyter\kernels\python27\kernel.json
{
"argv": [
"${Anaconda3_home}\\envs\\python27\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 27",
"language": "python"
}複製代碼
注意,修改display_name
爲自定義名稱,argv
第一行中路徑用\\
替代\
在cell
中輸入
import sys
sys.version複製代碼
切換不一樣python版本 按Ctrl+Enter運行 查看版本,e.g. 上圖中的3.6.1
,由於 Tensorflow官方文檔說windows只支持 3.5.x ,故而又裝了一個3.5.3的環境
參考 Running a notebook server ,使用nssm將jupyter設置爲開機自啓動服務
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
運行 Anaconda Prompt
activate root
jupyter notebook password
Preparing a hashed passwordC:\Users\{用戶名}\.jupyter\jupyter_notebook_config.py
中c.NotebookApp.ip = '*'
,c.NotebookApp.open_browser = False
{nssm_home}\win64\nssm.exe install jupyter {Anaconda3_home}\Scripts\jupyter-notebook.exe --config=C:\Users\{用戶名}\.jupyter\jupyter_notebook_config.py
注意,nssm默認使用LOCALSYSTEM
帳號操做,而jupyter默認讀取~\.jupyter
(~\
是當前登陸用戶文件夾),可使用nssm set <servicename> ObjectName <username> <password>
使用指定用戶,這樣就不須要--config=C:\Users\{用戶名}\.jupyter\jupyter_notebook_config.py
參數了,具體詳見 Usage 和 Managing services from the command line
2017-03更新,增長nginx反向代理
upstream jupyter {
server http://ip:8888;
server http://ip2:8888;
}
server {
listen 80;
server_name jupyter.example.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Host $host;
# kernels使用websocket通信,須要增長Upgrade和Connection [WebSocket proxying](http://nginx.org/en/docs/http/websocket.html)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
#若是是單服務,無負載,則不須要用upsstream
#proxy_pass http://ip:8888;
proxy_pass http://jupyter;
}
}複製代碼
博客 anjia.ml/2017/07/02/…
掘金 juejin.im/post/595897…
簡書 www.jianshu.com/p/e981c9d28…