1. 基于web的可交互运行环境jupyter
写了这么久还没介绍我写这些的平台,jupyter notebook
Jupyter 是ipython notebook 脱离ipython项目后的一个独立项目.不同于notebook, Jupyter已经不再只是python的交互执行框架, 而是致力于多语言通用的交互执行.
在以前 notebook作为ipython的一个子项目就受到许多人的喜爱和追捧,当时就已经可以通过多种途径利用它执行其他非python语言. 现在Jupyter 与ipython分家后,这一特性得到了更好的支持.
现在的Jupyter只负责交互执行,而执行的是什么语言其实是由其执行核心--kernel 来实现的,而现在的ipython可以自带其执行python版本的python核心.
本文也会顺带介绍几种支持Jupyter的优秀的语言.
至于ipython部分会单独拉出来讲,毕竟很多很实用
1.1. Jupyter的安装:
Jupyter 现在是独立安装.当然,你依然需要装有python 和 pip.
pip install jupyter
如果你用brew 安装的python3,那么自然的
pip3 install jupyter
1.2. 运行
jupyter notebook
当然了,没有kernel是没法运行的
1.3. *Jupyter的多语言支持
在这里你可以看到目前支持的语言.
下面介绍几个比较值得安装的的kernel安装:
本文中介绍的的kernel只在mac下测试安装成功,在linux下应当都能成功,但windows下未必. 欢迎朋友们写下其他平台的经验,我看到也会进行修改,谢谢
1.3.1. 通用依赖
几乎所有kernel都需要zeromq
和openssl
这两个库,在mac下他们都可以用brew安装
brew install zeromq brew install openssl
Jupyter 对于各个语言的支持其实都是通过所谓的核(kernel)来实现的,操作核的命令是jupyter kernelspec <cmd>
和常规一样,
- list 查看已有核的状态
- install 安装一个核,不过一般来说这些核都不是用这个方法装的
- remove/uninstall 移除一个核
1.3.2. python2与python3并存
安装依赖
python的kernel自然依赖于python.
对于新手来说python2和python3并存本身就是件比较纠结蛋碎的事儿,mac下一般会用homebrew安装两个版本 (当然也会有人安装其他比如pypy之类,那个咱不管)
brew install python brew install python3
如果是这样安装,那python python2 python3对应的便是不同版本的python如下表(可能版本不同有些许不同)
命令 | python来源 | pip命令 | 库位置 |
---|---|---|---|
python | brew 安装的 python | pip | /usr/local/lib/python2.7/site-packages |
python2 | brew 安装的 python | pip | /usr/local/lib/python2.7/site-packages |
python3 | brew 安装的 python3 | pip3 | /usr/local/lib/python3.4/site-packages |
安装kernel
分别安装ipython,在各自环境下执行
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
测试下
打开Jupyter:
jupyter notebook
可以在new看到里面出现Python 2和Python 3两个可选项
1.3.3. pypy
事实上jupyter并没有专门的pypy核心,但其实要用pypy比其他的都简单,我们通过ipython kernelspec list
找到自己原本的python核所在的目录,进去这个目录找到核文件夹,我们把它复制一份改名叫pypy
,然后在pypy环境中pip安装jupyter,这样原本的python的核就会被替换掉,我们只要给这俩核的文件夹名和其中的kernel.json
中的display_name对掉下就好了
1.3.4. SparkMagic
sparkmagic是一个可以用于连接远端spark,让我们通过jupyternotebook来使用spark的工具.
安装依赖
Livy是一个用于为spark提供restful接口的服务,sparkmagic依赖它.安装需要java8,下载解压后
检查环境变量
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
启动
./bin/livy-server start
安装kernel
- 安装python模块
pip install sparkmagic
- 确认是否开启控件功能
pip3 install jupyter
0
找到sparkmagic的安装路径,之后cd到那个路径,执行
jupyter-kernelspec install sparkmagic/kernels/sparkkernel
或者jupyter-kernelspec install sparkmagic/kernels/pysparkkernel
或者jupyter-kernelspec install sparkmagic/kernels/sparkrkernel
将对应语言的kernel添加到路径.设置
~/.sparkmagic/config.json
,一般默认就行,如果需要改,可以参考下面的例子pip3 install jupyter
1
测试下
切换Kernel到Pyspark
写一个用mapreduce求pi的函数:
pip3 install jupyter
2
pip3 install jupyter
3
ID | YARN Application ID | Kind | State | Spark UI | Driver log | Current session? |
---|---|---|---|---|---|---|
13 | None | spark | idle | ✔ |
pip3 install jupyter
4
学习spark可以参考官方文档
1.3.5. scheme
安装这个是为了学<计算机程序的构造和解释>这本书,作为Lisp的方言,scheme确实不简单.我安装的是基于ipython的calysto_scheme
,它本质上是用python解析执行scheme语句.
安装
再github上下载https://github.com/Calysto/calysto_scheme然后只要cd到目录
pip3 install jupyter
5
测试
求斐波那契数列
pip3 install jupyter
6
pip3 install jupyter
7
pip3 install jupyter
8
pip3 install jupyter
9
1.3.6. postgresql
最先进最全能的开源关系数据库postgresql也有对应的内核postgres_kernel.
安装
jupyter notebook
0
注意原版依赖psycopg2,很多时候不好安装.
测试
jupyter notebook
1
jupyter notebook
2
jupyter notebook
3
jupyter notebook
4
jupyter notebook
5
id | name | birthday |
---|---|---|
1 | 千万 | 2019-03-04 |
2 | 十万 | 2018-03-04 |
3 | 百万 | 2017-03-04 |
4 | 千万 | 2019-03-04 |
5 | 十万 | 2018-03-04 |
1.3.7. C语言
jupyter-c-kernel是一个简单的C语言内核,它的外部依赖只有gcc.
安装
jupyter notebook
6
测试一下
jupyter notebook
7
jupyter notebook
8
1.3.8. C++语言
想象下C++这种竟然可以依靠强大的LLVM和Clang实现脚本化,是不是很激动~~
安装依赖
cling从这里下载对应版本的安装包,解压到希望的位置即可 设定一下环境变量CLING_EXE=你的cling安装目录下cling的具体位置
安装
下载https://github.com/minrk/clingkernel,cd进去后
jupyter notebook
9
安装成功后执行
brew install zeromq brew install openssl
0
测试下
切换Kernel到C++:
brew install zeromq brew install openssl
1
brew install zeromq brew install openssl
2
brew install zeromq brew install openssl
3
brew install zeromq brew install openssl
4
brew install zeromq brew install openssl
5
brew install zeromq brew install openssl
6
brew install zeromq brew install openssl
7
brew install zeromq brew install openssl
8
brew install zeromq brew install openssl
9
brew install python brew install python3
0
brew install python brew install python3
1
1.3.9. Golang
Go语言是谷歌几年前推出的一门编译型语言,它以简洁优雅高,高开发效率,高可维护性和善于处理高并发而著称 Go有一套完善的开发流程和语言规范,是开发高性能服务的优秀选择.
安装依赖
- go语言:
go语言只要用homebrew安装即可
brew install python brew install python3
2
安装好后要在~/.bash_profile
内添加以下语句(中你的go项目位置)后resource下激活或者重启计算机
brew install python brew install python3
3
如果你希望你的
brew install python brew install python3
4
这是一个go语言的解释器,可以写一句执行一句,它也自带一个交互命令行工具
安装:
首先它依赖go的一个包叫做goimports,安装的话墙外很简单
brew install python brew install python3
5
但墙外我们就得用这个
它的安装默认是依赖zmq2.2.x,但我想大多数人都装的是zmq4.x吧,所以只要这么安装
brew install python brew install python3
6
安装kernel
brew install python brew install python3
7
然后去你的第一个GOPATH下找到/src/github.com/takluyver/igo/kernel/文件夹,之后复制进.ipython/kernels/gophernotes
之后修改其中的kernel.json
,将其中的GOPATH
替换成自己的的gopath
测试下
切换Kernel到Golang 1.5
brew install python brew install python3
8
brew install python brew install python3
9
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
0
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
1
channels
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
2
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
3
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
4
例子
brew install python brew install python3
8
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
6
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
7
go语言可以看这篇来学习
1.3.10. Rust
Rust也是一门很有潜力的编程语言.
安装
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
8
测试
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self
9
jupyter notebook
0
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
1.3.11. Javascript(jp-babel)
1.3.12. 安装kernel
jupyter notebook
1
安装kernel
jupyter notebook
2
测试下
切换Kernel到JavaScript(Node.js)
jupyter notebook
3
jupyter notebook
4
1.3.13. R
似乎是很受数据科学家由其统计出身的人欢迎的一种语言.但是语法别扭,个人不喜欢,但是还是得学习
安装依赖
- R
然后双击安装
安装kernel
jupyter notebook
5
测试下
写个身高的简单统计计算吧:
先安装sca
包:
jupyter notebook
6
切换Kernel到R:
jupyter notebook
7
jupyter notebook
8
1.3.14. Scala
Scala应该是后起语言中的新星了,同时支持面向对象编程和函数式编程的特性让它分外耀眼,而拥有类型推断又让它显得十分简洁优雅. 它与Java间的联系又让它因为有衬托对比而显得格外讨喜.
安装依赖
自然要安装scala了
jupyter notebook
9
留意安装的是什么版本
安装kernel
虽然列表中推荐的是iscala 但还有一个更加简单的方式--jupyter-scala**
这个方法就是简单无脑的下载下来然后运行脚本
解压到一个安全的位置然后运行其中
bin
文件夹下的的jupyter-scala
脚本自动完成安装用
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
0查看是否有
scala211
或者scala210
这样的输出,有的话之后运行export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
1这样再用jupyter notebook进入就能找到Scala 2.11了
当然这样如果以后scala升级了那就无法使用最新版本了,解决方法就是自己本地编译
测试下
写个简单的尾递归求阶乘
切换Kernel到Scala 2.11
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
2
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
3
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
4
export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf
5
学习scala可以去这里
1.4. 一些技巧
!
用来执行shell命令
比如!cat a.txt
可以查看a.txt的内容
利用这个技巧配合atom等有命令行工具的文本编辑器可以实现对编译语言的编译和运行
- 魔法命令
%
(不是所有都有,ipython的一定有)
输入%magic
可以查看有哪些魔法命令
- 尽量不要让jupyter打印循环或者递归,如果出错可能会卡死,下次也打不开,处理方法是用文本编辑器打开
ipynb
文件,直接删除对应的cell内容和打印内容
还没有评论,来说两句吧...