业余时间,偶尔接触了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…