从命令行 运行 iPython nbconvert 时超时

Timeout when running iPython nbconvert from command line

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

在 BAT 中,我的代码首先“将 Windows cmd 转换为 Anaconda Prompt”,代码为:<anaconda3 path>\Scripts\activate.bat <anaconda3 path>

(没有正规的 CS 教育,所以请耐心等待。)

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

jupyter nbconvert --execute --ExecutePreprocessor.enabled=True --ExecutePreprocessor.timeout=60 <Notebook>

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

为此 - 当 nbconvert 使用预处理器时,它们是否 运行 先发制人地处理整个脚本?我正在努力寻找为什么 nothing 在执行 nbconvert 命令时打开、ping、运行s、更新等的原因。我预计 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

通过将 Anaconda3/Library/Bin 路径添加到 c/windows/system32 PATH 来修复。由于 DLL 错误发生超时,在命令行中作为超时返回。

对于使用正确路径遇到此错误的任何其他人,我能够使用标志 --ExecutePreprocessor.timeout=300

延长超时