iPython笔记本(使用Jupyter)的默认模板

40

在每个iPython(Jupyter)笔记本的第一个单元格中,我几乎总是输入以下内容:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

有没有一种方法可以使得该单元格在默认情况下出现在我创建的每个新笔记本的顶部?

例如,我是否可以保存一个模板.ipynb文件,在创建新笔记本时由iPython复制该文件?

(我发现这个问题,但它似乎更多关于CSS而不是单元格中的默认内容。)


5
我认为这会很有用。我认为目前这还不存在。 - cel
3个回答

11

我知道这可能不是你所寻找的(这个示例不适合在需要在多个环境中运行的笔记本电脑上工作,例如共享的情况),但我将以下内容放在一个名为ipython_config.py的文件中,并存放在我的.ipython文件夹中。

c.InteractiveShellApp.exec_lines = ['%matplotlib inline',
    'import numpy as np',
    'import scipy.constants as scc',
    'import scipy.integrate as sci',
    'from mpl_toolkits.mplot3d import Axes3D',
    'import scipy.optimize as sco'
]

这将在任何交互式控制台(包括jupyter笔记本)中运行任何其他内容之前运行。如果您想要明确的样板代码,我认为您会感到失望(除非您想为我们构建功能☺)。


8
在配置文件中设置隐式导入会破坏笔记本的可移植性。最好使用显式导入的模板以增加清晰度,因为在Python之禅中:“明确优于隐含”。 - Mike
2
我一直在反复思考这个问题,看看是否有人已经解决了它。我认为可以通过自定义jupyter在保存笔记本时使用的pre_save_hook来完成,但我仍然没有弄清楚。 - Riet
3
这是一个小技巧,但很实用。我会保留一个 startup.py (或多个) 文件,只需在 Jupyter 中输入 %load startup.py 即可调用它们。这不过是一个快速输入的操作,但是它能起到作用... - Time Lord
1
如果我们可以安装模板,并且能够在Jupyter文件浏览器的“新建”下拉菜单下使用,那么这将非常酷。 - ajwood

4

有一个非常棒的解决方案,使用jupyterlab

jupyterlab_templates

安装只需要大约5分钟,您可以拥有任意数量的模板。

Mac用户

假设您已经安装了conda,那么在安装过程中,你需要安装node js引擎:

  • conda install -c conda-forge nodejs

如果您没有jupter_noteook_config.py文件,需要创建一个:

  • jupyter notebook --generate-config

这绝对是最接近我的原始请求的,而且很好的是你可以拥有一组不同的模板。 - Bill Cheatham

3
你可以使用ipython的启动文件来完成此操作。在默认配置文件中创建一个新的启动文件,当启动ipython时,jupyter将自动加载它。
 ~/.ipython/profile_default/startup/00-startup.py

2
这是一个不错的解决方案,但它并没有在笔记本中文本添加标题。这在与他人共享笔记本时会出现问题,因为导入未被共享。 - elbOlita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接