windows 从命令行运行iPython nbconvert时超时

erhoui1w  于 2023-02-16  发布在  Windows
关注(0)|答案(3)|浏览(228)

我正在尝试使用批处理文件和Windows任务管理器自动化IPython脚本。经过深入研究,我发现您可以使用任务管理器触发BAT,并通过它执行nbconvert包,以便在没有交互位的情况下运行Jupyter Notebook。
在BAT中,我的代码首先"* 将Windows cmd转换为Anaconda Prompt *",代码如下:<anaconda3 path>\Scripts\activate.bat <anaconda3 path>
(No正规的CS教育,所以请原谅我。)
该行允许我在Windows cmd之外运行condajupyter命令。

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

当这种情况发生时,我一直收到超时错误。是的,我可以调整计时器,但在将计时器设置为10小时并在早上回来之前,我希望对nbconvert中的幕后发生的事情有一些了解。也许还有一些关于如何让这个工作的见解。当通过Jupyter Notebook运行时,. ipynb文件工作正常。然而,在某个点上,脚本试图加载几GB的数据,每次运行它都要花大约20分钟。
为此,当nbconvert使用预处理器时,它们是否会抢先运行整个脚本?我很难找到一个原因,为什么在执行nbconvert命令时,nothing没有打开、ping、运行、更新等。我希望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
kpbwa7wx

kpbwa7wx1#

对于任何其他遇到此错误但路径正确的人,我可以使用标志--ExecutePreprocessor.timeout = 300来延长超时
根据文件:
超时traitlet定义了每个笔记本单元格允许运行的最长时间(以秒为单位),如果运行时间较长,则会引发异常。默认值为30秒,因此对于长时间运行的单元格,您可能需要指定一个更高的值。

cygmwpex

cygmwpex2#

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

dba5bblo

dba5bblo3#

根据文件:"timeout选项也可以设置为None-1以删除对执行时间的任何限制。"。因此,这将是:--ExecutePreprocessor.timeout=-1

相关问题