背景
以前写脚本的时候会发现某一行脚本运行不了了,会去修改这一行,但是要想知道是否修改是否生效,则需要把脚本从头开始运行,直到我们修改的那一行。每次都是这样的轮回很费时间,更无奈的是耐心被渐渐的消磨。
昨天不知道怎么了,突然想打开IPython notebook玩玩。结果一发不可收拾,把一个项目的新手流程脚本用IPython重头到尾一天就写好了。实在是太适合写测试脚本了。
ipython notebook的安装和使用入门 pip install jupyter ipython
jupyter notebook # 执行后会自动打开浏览器
依次选择 New -> Python2, 创建一个Python2的Notebook,随便写点代码
这里面,每一个代码块都可以单独运行。而不用从文件的第一行开始,效率大大的提升。
比如我想修改print_stars函数,将*换成真正的星星,修改完之后,只要重新运行下面两个代码块就可以
jupyter保存的文件的扩展名是 .ipynb, 实际上这是一个json文件。
命令行运行ipynb文件
通常的办法是先将ipynb文件转化成py文件,然后在运行。不过感觉有点麻烦,经过我不懈的Google终于发现了一种非常简洁的办法。
# Refs: https://github.com/paulgb/runipy
$ pip install runipy
$ runipy mynotebook.ipynb
01/27/2018 01:22:10 PM INFO: Running cell:
import os
import uiautomator2
import functools
01/27/2018 01:22:10 PM INFO: Cell returned
01/27/2018 01:22:10 PM INFO: Running cell:
def print_stars(n):
print '*' * n
01/27/2018 01:22:10 PM INFO: Cell returned
01/27/2018 01:22:10 PM INFO: Running cell:
print_stars(5)
01/27/2018 01:22:10 PM INFO: Cell returned
01/27/2018 01:22:10 PM INFO: Running cell:
01/27/2018 01:22:10 PM INFO: Cell returned
01/27/2018 01:22:10 PM INFO: Shutdown kernel
runipy的好处是,可以在运行代码的时候把代码也直接打印了出来,非常方便看代码运行进度。(奇怪,在我mac上竟然没有输出)
或者用个比较长的命令,转化成py再运行
jupyter nbconvert --to script --execute --stdout mynotebook.ipynb | python
打造更好看的jupyter notebook
安装方法
pip install jupyterthemes
然后就是通过命令行调整主题
# dark
jt -t onedork -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T
# light
jt -t grade3 -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T
# 我最喜欢的一种风格,暗色monokai风格,ubuntu字体,宽带调整为88%的宽屏模式
jt -t monokai -f ubuntu -cellw 88%
# 恢复成原有的样式
jt -r
PS:mac上的字体本身就很好看,不用调
使用VSCode内置的ipython
vscode内置的ipython也挺好用的,只要在代码的上面一行加上 #%% 就会看到 Run cell的按钮,点击之后就能运行直到下一个#%%的代码了。
下面是官网给出的一个演示图,详情
尾声
具体的介绍就写到这里,大家周末愉快。我去看雪去了