Jupyter Notebook 导出到 HTML + Crontab 不显示绘图

Jupyter Notebook export to HTML + Crontab doesn't show plots

提问人:husvar 提问时间:11/15/2023 最后编辑:husvar 更新时间:11/16/2023 访问量:32

问:

我正在自动执行 Jupyter Notebook 的自动执行和 HTML 导出。 Jupyter Notebook 是在 VS Code 中创建的,当我从 Ubuntu 的终端导出它时 (jupyter nbconvert --execute --to html),我得到了包含所有绘图的正确 HTML。 但是,当我在 crontab 中执行它或使用通过 ssh 从另一台 PC 远程连接的终端时,不会发生这种情况,不会显示绘图。该脚本运行良好,并输出打印命令,但不输出打印。

代码是这样的:

for i in range(15):
    (... )
    np.log(pd_df+1).join(pd_df_2).plot()
    plt.show()
    plt.close()

    pd_df.join(pd_df_2).plot()
    plt.show()
    plt.close()

    np.clip(pd_df_3, -1, 1).plot()
    plt.show()
    plt.close()` 


   (...)

我试图包含下面的代码,我用 sh 而不是 bash 执行。

%matplotlib inline # prior to import command

我还尝试包含下面的代码,但它也不起作用。

import plotly.io as pio
pio.renderers.default = 'notebook'
python pandas matplotlib jupyter-notebook cron

评论

0赞 Wayne 11/16/2023
我知道它在 ubuntu 的终端中工作。让我们暂时搁置 crontab 的东西。您能更好地解释一下“ssh 中的终端”是什么意思吗?运行它的计算机不是 Ubuntu。ssh 实例中的环境是否不同?到目前为止,那里的区别还非常清楚。次要:包含的第一个代码块格式不正确。而且它不是一个完全可重复的例子。在第一个代码块之后的所有内容似乎都不应该存在,或者应该证明为什么你认为它会有所帮助,因为这两种“来自终端”的情况。
0赞 husvar 11/16/2023
这意味着如果我通过 ssh 连接到我尝试运行代码的机器,它也不会生成图表。只有当我在 Ubuntu GUI 中打开终端时,才会生成图表。
0赞 Wayne 11/16/2023
相同的环境是否使用相同的底层 Python 和包?
1赞 husvar 11/17/2023
是的,这是相同的环境。我通过添加一个显示作为环境变量来解决它,例如“DISPLAY=:0 /home/hugo/.local/bin/jupyter nbconvert --execute --to html”。知道如何在没有这个的情况下支持它吗?

答: 暂无答案