以前写脚本的时候会发现某一行脚本运行不了了,会去修改这一行,但是要想知道是否修改是否生效,则需要把脚本从头开始运行,直到我们修改的那一行。每次都是这样的轮回很费时间,更无奈的是耐心被渐渐的消磨。
昨天不知道怎么了,突然想打开 IPython notebook 玩玩。结果一发不可收拾,把一个项目的新手流程脚本用 IPython 重头到尾一天就写好了。实在是太适合写测试脚本了。
pip install jupyter ipython
jupyter notebook # 执行后会自动打开浏览器
依次选择 New -> Python2, 创建一个 Python2 的 Notebook,随便写点代码
这里面,每一个代码块都可以单独运行。而不用从文件的第一行开始,效率大大的提升。
比如我想修改print_stars
函数,将*
换成真正的星星,修改完之后,只要重新运行下面两个代码块就可以
jupyter 保存的文件的扩展名是 .ipynb
, 实际上这是一个 json 文件。
通常的办法是先将 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
网上有大神做了很多主题,链接看这里 https://github.com/dunovank/jupyter-themes
安装方法
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 也挺好用的,只要在代码的上面一行加上 #%%
就会看到 Run cell的按钮,点击之后就能运行直到下一个#%%
的代码了。
下面是官网给出的一个演示图,详情
具体的介绍就写到这里,大家周末愉快。我去看雪去了