【发布时间】:2015-04-05 14:53:33
【问题描述】:
设置:
我有一个 IPython Notebook,我想将其包含在我的文档的教程部分。我编写了一个 .ipynb —> .rst 转换脚本(使用 pandoc),其工作原理如下:笔记本首先转换为 .py 文件,该文件作为脚本执行,如果脚本执行没有引发异常,则.rst 导出被触发,并在文档的适当位置构建了指向该教程的链接。这样,只有在代码按照教程所说的那样做的情况下,教程才能集成到我的文档中。此方法是根据以下问题开发的:Raise exception if script fails
好的,这就是问题所在。我希望一些 .ipynb 教程包含带有 matplotlib 的内联图。我在 IPython Notebook 中显示绘图的方式是使用魔法函数调用:
%matplotlib inline
但是,如果此命令出现在 python 可执行脚本中,python 会引发异常。所以我的教程目前都不能包含绘图。
问题:
所以我的问题是:如何在笔记本中包含内联图,以在笔记本导出到 .py 文件并作为脚本执行时不会引发异常?或者,除此之外,还有其他解决方法的建议吗?
【问题讨论】:
-
在通过普通 python 运行程序之前,删除有问题的行可能更容易。
-
为什么要将
inline调用包含在输出文档中?如果您的代码打算在普通的 python 脚本中运行,那么它失败是有道理的。 -
@ari - 我希望 .rst 文件显示一个可以在我的网络托管文档上阅读的漂亮图。该脚本的唯一目的是测试其余代码是否正常工作,以便我的文档保持最新。
-
.rst 可以包含笔记本中的 png 吗?这很整洁!在这种情况下,正如大卫所说,在转换之前从 .ipnb 或在运行之前从 .py 中剥离所有魔法应该可以解决问题。
-
另外,查看您链接的问题,您没有接受答案。如果其中一个答案解决了您的问题,我建议您接受它——花所有时间回答问题而没有得到验证可能有点令人沮丧。
标签: python matplotlib plot ipython-notebook