在没有 IDE 的情况下保存 IPython 控制台输出

Save IPython console output without IDE

我目前使用 Spyder 生成一些图表,这些图表显示在 Spyder 的 IPython 控制台中。这允许我通过右键单击 IPython 控制台并选择 'Save as HTML/XML'.

将输出保存为 HTML 文件

假设我有以下代码:

import matplotlib.pylab as plt
print "Some text."
plt.plot([1,6,3,9,5])
plt.title('Some values')

现在我想通过 SSH 远程 运行 这个脚本。如何在不打开 Spyder 的情况下生成一个等价的 html 文件,其输出通常会在 IPython 控制台中生成?可以使用ssh的-X参数。我正在寻找一个不特定于上述代码但适用于任何类型的 plot/output.

的答案

据我了解,您想将交互式 iPython 控制台的输出保存到 html。 我找不到右键单击并保存到 HTML 的直接方法(我确定是否可以使用 UI 命令也可以不使用,我没有仔细看).

然而,解决方法可能是先将其保存到 *.ipynb,然后从 shell 将其转换为 *.html

假设您有一个名为 test.py 的文件,您想要 运行 您只需向其中添加以下代码:

import IPython.nbformat.current as nbf
nb = nbf.read(open('test.py', 'r'), 'py')
nbf.write(nb, open('test.ipynb', 'w'), 'ipynb')

来自 this answer

那么您只需使用 shell 即可:

ipython nbconvert --to html test.ipynb

如果您想保存正在 运行 的会话而不是保存的文件,您应该首先使用 %save 'test.py' 魔术命令,然后执行前面的步骤。