【问题标题】:Default template for iPython notebook (using Jupyter)iPython 笔记本的默认模板(使用 Jupyter)
【发布时间】:2016-03-04 07:24:30
【问题描述】:

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

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

有没有办法让这个单元格默认出现在我创建的每个新笔记本的顶部?

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

(我找到了this question,但它似乎更多的是关于css而不是单元格中的默认内容。)

【问题讨论】:

  • 我认为这会很有用。我认为目前不存在。

标签: ipython ipython-notebook jupyter


【解决方案1】:

我知道它可能不是您想要的(这个例子不适合在需要在多个环境中运行的笔记本上工作,例如共享),但我将以下内容放在一个名为 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 notebook)中运行之前运行。如果您想要显式样板化,我认为您会感到失望(除非您想为我们构建功能☺)

【讨论】:

  • 在配置中设置隐式导入会破坏笔记本的可移植性。为了清晰起见,最好有一个带有显式导入的模板,因为在 Python 之禅中:“显式优于隐式”。
  • 我自己不断地重新审视这个问题,看看是否有人已经弄清楚了。我认为可以通过自定义 jupyter 在保存笔记本时使用的 pre_save_hook 来完成,但我还没有弄清楚。
  • 这是一个 hack 但有效。我保留了一个 startup.py(几个)文件,这只是 Jupyter 中调用 %load startup.py 的一个例子。只不过是一种快速类型,但它可以工作......
  • 如果我们可以安装模板,那就太酷了,它最终会出现在 Jupyter 文件浏览器的“新建”下拉菜单下..
【解决方案2】:

您可以使用 ipython 启动文件来执行此操作。在默认配置文件中新建一个启动文件,jupyter启动ipython时会自动拉入。

 ~/.ipython/profile_default/startup/00-startup.py

【讨论】:

  • 这是一个不错的解决方案,但它不会以文本方式将标题添加到笔记本中。这是与其他人共享 nbs 时的问题,因为导入未共享。
【解决方案3】:

使用 jupyterlab 有一个非常酷的解决方案: jupyterlab_templates

安装大约需要 5 分钟,您可以拥有多个

随心所欲的模板。

Mac 用户

假设你在安装过程中安装了 conda,你需要安装 node js 引擎:

  • conda install -c conda-forge nodejs

如果没有,请创建一个 jupter_noteook_config.py :

  • jupyter notebook --generate-config

【讨论】:

  • 这绝对是最接近我最初的要求了,能有一套不同的模板真是太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多