hook - ipython notebook --script 已弃用。如何用后保存 Hook 替换?

标签 hook ipython-notebook jupyter

我一直在使用“ipython --script”为每个 ipython 笔记本自动保存一个 .py 文件,这样我就可以使用它将类导入其他笔记本。但这最近停止工作,我收到以下错误消息:

`--script` is deprecated. You can trigger nbconvert via pre- or post-save hooks:
ContentsManager.pre_save_hook
FileContentsManager.post_save_hook
A post-save hook has been registered that calls:
ipython nbconvert --to script [notebook]
which behaves similarly to `--script`.

据我了解,我需要设置一个保存后 Hook ,但我不明白如何做到这一点。有人可以解释吗?

最佳答案

我刚刚遇到了一个问题,我无权重新启动我的 Jupyter 实例,因此无法应用我想要的保存后 Hook 。

因此,我提取了关键部分并可以使用 python manual_post_save_hook.py 运行它:

from io import open
from re import sub
from os.path import splitext
from nbconvert.exporters.script import ScriptExporter

for nb_path in ['notebook1.ipynb', 'notebook2.ipynb']:
    base, ext = splitext(nb_path)
    script, resources = ScriptExporter().from_filename(nb_path)
    # mine happen to all be in Python so I needn't bother with the full flexibility
    script_fname = base + '.py'
    with open(script_fname, 'w', encoding='utf-8') as f:
        # remove 'In [ ]' commented lines peppered about
        f.write(sub(r'[\n]{2}# In\[[0-9 ]+\]:\s+[\n]{2}', '\n', script))

您可以像使用标准后保存 Hook 一样添加自己的花里胡哨,配置是正确的继续方式;分享给其他可能陷入类似困境的人,他们无法让配置编辑生效。

关于hook - ipython notebook --script 已弃用。如何用后保存 Hook 替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329667/

相关文章:

python - 禁止 NBConvert 中的代码? IPython

Pandas (0.16.2) 显示 3 行 Dataframe

ruby - 如何在 Jupyter notebook 中需要 ruby​​ gems?

liferay - 在 liferay 门户中自定义用户管理的问题

emacs - 何时在 Emacs 中使用 add-hook、eval-after-load

python-3.x - 带有自定义转换器的并行 GridSearchCV 卡在 IPython 笔记本中

python - 设置 Jupyter 笔记本的最大核心数

python - Jupyter Notebook 不会将日志打印到输出单元

html - 无法在 WordPress 中设置 <a> 标签的样式

amazon-elastic-beanstalk - 如何将 chmod +x 权限添加到 AWS Elastic Beanstalk 平台 Hook ?