从/到python和r脚本的jupyter笔记本
nbsrc的Python项目详细描述
从/到python或r脚本的jupyter笔记本
jupyter笔记本是复杂的文件,包含源代码、元数据和 丰富的输出。在这里,我们为jupyter提供了一个简单的补充格式 笔记本,作为纯python(或r)的配套脚本。
生成的python脚本非常适合 将笔记本电脑置于版本控制之下。他们可以是 在Jupyter之外编辑,使用 你最喜欢的文本编辑器,甚至标准的合并工具,如果你想合并 对笔记本的多次投稿。
使用nbsrc
包,任何python或r脚本都可以作为笔记本加载
在朱庇特。如果存在一个具有匹配名称的经典^ {< CD2> }笔记本,
匹配输入的输出被重构。如果你把python
和jupyter文件,如下所示,当打开ipynb
笔记本时,
相应的输入来自py
文件,您可能已经更新了该文件
在朱庇特外面。
能给我演示一下吗?
当然。试试我们的包裹binder! 在那里,您将能够
- 以笔记本形式打开和执行任意python文件(请尝试
matplotlib演示名为
filled_step.py
) - 若要打开笔记本,请编辑相应的python脚本,然后重新加载笔记本, 在Jupyter中查找最新的输入。
python版本看起来怎么样?
下面是jupyter笔记本的一个例子,以及它的python表示。
我们有数百项测试,确保
- 往返转换:python到notebook到python,is identity
- 往返转换,从jupyter笔记本开始,保留源代码 和元数据,而不是输出。在某些情况下(在 代码单元格),可以将单元格拆分为较小的单元格。
Python notebook in Jupyter | Python script |
---|---|
笔记本的r脚本表示遵循该语言的standard。
如何激活配套脚本?
- 使用
jupyter notebook --generate-config
- 编辑配置并包含以下内容:
c.NotebookApp.contents_manager_class='nbrmd.RmdFileContentsManager'c.ContentsManager.default_nbrmd_formats='ipynb,py'
然后,确保你有^{
pip install nbrmd --upgrade jupyter notebook
有了以上配置,每个Jupyter笔记本都将有一个同伴
.py
脚本。以及在jupyter中编辑的每个.py
脚本
会有一个同伴的笔记本。
如果您不希望jupyter在 脚本已编辑,设置
c.ContentsManager.default_nbrmd_formats = ''
(因为默认值是ipynb
)。但是,脚本的输出,
将不再被保存。
每个笔记本配置
使用上述配置,每个笔记本都将有一个配套的.py
文件。
如果您希望仅为少数笔记本生成配套脚本,
然后从jupyter中删除c.ContentsManager.default_nbrmd_formats
行
配置,并按如下方式编辑笔记本元数据:
{
"kernelspec": {
"name": "python3",
(...)
},
"language_info": {
(...)
},
"nbrmd_formats": "ipynb,py"
}
可接受的格式有:.ipynb
、.Rmd
、.py
和.R
。
如果您同时需要.py
和.Rmd
,请注意
顺序问题:第一个非.ipynb
扩展
是用作笔记本输入的参考源的。
nbsrc
和nbrmd
有什么区别?
^{nbsrc
包的主要原因。
实际上不需要nbsrc
包,除非需要命令行
转换工具。
命令行转换
nbsrc
包提供了转换jupyter笔记本的nbsrc
脚本
到r或python脚本,反之亦然。
用
安装pip install nbsrc --upgrade
然后将其用作:
nbsrc jupyter.ipynb # this prints the `.py` or `.R` alternative nbsrc jupyter.ipynb -i # this creates a jupyter.py or jupyter.R file nbsrc jupyter.py -i # and this, a jupyter.ipynb file nbsrc jupyter.py -i -p # update the jupyter.ipynb file and preserve outputs that correspond to unchanged inputs
或者,nbsrc
包p提供两个nbconvert
导出器,可用于
nbconvert jupyter.ipynb --to pynotebook nbconvert jupyter.ipynb --to rnotebook