从命令行运行 iPython nbconvert 时超时

bro*_*don 5 windows automation anaconda jupyter-notebook nbconvert

我正在尝试使用批处理文件和 Windows 任务管理器来自动化 IPython 脚本。经过大量挖掘后,我发现您可以使用任务管理器触发 BAT 并通过它执行包,nbconvert以便在没有交互位的情况下运行 Jupyter Notebook。

在 BAT 中,我的代码首先“将 Windows cmd 变成 Anaconda Prompt ”,代码如下:<anaconda3 path>\Scripts\activate.bat <anaconda3 path>

(没有接受过正规的计算机科学教育,所以请耐心等待。)

该行允许我从 Windows cmd 中运行命令condajupyter然后我跑

jupyter nbconvert --execute --ExecutePreprocessor.enabled=True --ExecutePreprocessor.timeout=60 <Notebook>
Run Code Online (Sandbox Code Playgroud)

发生这种情况时,我不断收到超时错误。是的,我可以调整计时器,但在将计时器设置为 10 小时并早上回来之前,我希望能够了解一些幕后发生的事情nbconvert,也许还能够了解如何使其正常工作。通过 Jupyter Notebook 运行时,.ipynb 文件工作正常。然而,在某个时刻,脚本会尝试加载几 GB 的数据,每次运行它都会花费大约 20 分钟。

为此,当nbconvert使用预处理器时,它们是否会抢先运行整个脚本?我正在努力寻找为什么在执行命令时没有打开、ping、运行、更新等的原因nbconvert。我预计 RAM 使用率至少会有所上升,但据我所知,这也没有发生。

nbconvert我该如何解决这个问题,以及执行时幕后发生了什么?

追溯:

C:\Users\User>jupyter nbconvert --execute "C:\Users\User\Desktop\_for_Python\CBSA.ipynb"  
[NbConvertApp] Converting notebook C:\Users\User\Desktop\_for_Python\CBSA.ipynb to html  
[NbConvertApp] Executing notebook with kernel: python3  
[NbConvertApp] ERROR | Timeout waiting for execute reply (30s).  
Traceback (most recent call last):  
  File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\nbconvert\preprocessors\execute.py", line 423, in _wait_for_reply  
    msg = self.kc.shell_channel.get_msg(timeout=timeout)  
  File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\jupyter_client\blocking\channels.py", line 57, in get_msg  
    raise Empty  
_queue.Empty
Run Code Online (Sandbox Code Playgroud)

小智 7

对于使用正确路径面临此错误的其他人,我可以使用标志 --ExecutePreprocessor.timeout=300 延长超时

根据文档:

超时特征定义了每个笔记本单元允许运行的最长时间(以秒为单位),如果执行时间更长,则会引发异常。默认值为 30 秒,因此对于长时间运行的单元格,您可能需要指定更高的值。


bro*_*don 1

通过将Anaconda3/Library/Bin路径添加到c/windows/system32PATH 来修复。由于 DLL 错误而发生超时,在命令行中以超时形式返回。