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 jupyter1
测试下
切换Kernel到Pyspark
写一个用mapreduce求pi的函数:
pip3 install jupyter 2pip3 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 6pip3 install jupyter 7pip3 install jupyter 8pip3 install jupyter 91.3.6. postgresql
最先进最全能的开源关系数据库postgresql也有对应的内核postgres_kernel.
安装
jupyter notebook 0注意原版依赖psycopg2,很多时候不好安装.
测试
jupyter notebook 1jupyter notebook 2jupyter notebook 3jupyter notebook 4jupyter 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 7jupyter notebook 81.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 1brew install zeromq brew install openssl 2brew install zeromq brew install openssl 3brew install zeromq brew install openssl 4brew install zeromq brew install openssl 5brew install zeromq brew install openssl 6brew install zeromq brew install openssl 7brew install zeromq brew install openssl 8brew install zeromq brew install openssl 9brew install python brew install python3 0brew install python brew install python3 11.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 8brew install python brew install python3 9pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 0pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 1channels
pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 2pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 3pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 4例子
brew install python brew install python3 8pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 6pip install ipython[all] ipython kernelspec install-self pip3 install ipython[all] ipython kernelspec install-self 7go语言可以看这篇来学习
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 9jupyter 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 3jupyter notebook 41.3.13. R
似乎是很受数据科学家由其统计出身的人欢迎的一种语言.但是语法别扭,个人不喜欢,但是还是得学习
安装依赖
- R
然后双击安装
安装kernel
jupyter notebook 5测试下
写个身高的简单统计计算吧:
先安装sca包:
jupyter notebook 6切换Kernel到R:
jupyter notebook 7jupyter notebook 81.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/conf0- 查看是否有 - scala211或者- scala210这样的输出,有的话之后运行- export SPARK_HOME=/usr/lib/spark export HADOOP_CONF_DIR=/etc/hadoop/conf1- 这样再用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内容和打印内容



 
		 
		 
		 
		

还没有评论,来说两句吧...