【问题标题】:How do I automatically run a jupyter notebook (with Anaconda) on startup using Windows Scheduler如何使用 Windows 调度程序在启动时自动运行 jupyter 笔记本(使用 Anaconda)
【发布时间】:2018-12-06 22:39:07
【问题描述】:

我有一个自动查询数据库的笔记本,然后每小时将结果推送到谷歌表格,但需要在计算机上不断运行才能工作。如何在我的计算机启动时自动运行 Jupiter notebook(我经常重启)谢谢!

【问题讨论】:

    标签: python-3.x jupyter-notebook


    【解决方案1】:

    我实际上并没有尝试过使用 Anaconda,但该解决方案应该具有可比性。这个想法是创建vb 脚本并从计划任务中运行它。

    1. 创建 jupyter-cron.vbs

      Set run = WScript.CreateObject("WScript.Shell")
      run.Run "jupyter-notebook.exe --no-browser --notebook-dir=C:\Notebooks", 0, True
      

      注意:使用 --no-browser 选项阻止浏览器启动。该脚本将使用隐藏窗口运行。不要忘记更新笔记本目录的路径。

    2. 创建 jupyter-cron.bat

      start /B "C:\Windows\SysWOW64\cscript.exe" "C:\Localdata\jupyter-cron.vbs"
      

      注意:此位置适用于 64 位系统,32 位系统使用 C:\Windows\System32\cscript.exe。不要忘记更新 vbs 脚本的路径。

    3. 定义计划任务在系统启动时运行

    【讨论】:

      【解决方案2】:

      以下是我使用 Johnny 的步骤作为模板的方法。 (我会回复他的帖子,但我没有足够的代表。)

      1. 创建了 jupyter.vbs 文件,就像 Johnny 提到的那样。将 $pathToAnaconda 替换为您的路径,将 $pathToJupyterDirectory 替换为您希望 jupyter 打开的位置。
      Set WinScriptHost = WScript.CreateObject("WScript.Shell")
      WinScriptHost.Run "C:\{$pathToAnaconda}\Anaconda3\Scripts\activate.bat & jupyter notebook --no-browser --notebook-dir=C:\{$pathToJupyterDirectory}", 0, True
      Set WinScriptHost = Nothing
      
      1. 创建了 jupyter.bat 文件,就像 Johnny 提到的那样。将 $pathToVbsScript 替换为您在步骤 1 中创建的 vbs 文件的路径。
      start /B "C:\Windows\SysWOW64\cscript.exe" "C:\{$pathToVbsScript}\jupyter.vbs"
      
      1. 转到 Windows 开始菜单并键入任务计划程序。打开它,点击新建任务,然后继续 Johnny 的步骤 #3。

      【讨论】:

      • 我按照你上面提到的方式设置它,但是执行 jupyter.vbs 后没有任何反应。我一定遗漏了什么,{$pathToJupyterDirectory} 中有什么?它是你 .ipynb 仪式的位置?
      • 这个很完美
      【解决方案3】:

      这就是我使用 Windows 任务计划程序为这类事情所做的。这种方法的缺点是您的计算机必须打开并连接到互联网,但如果您仍然在工作,这并不重要。

      将您的笔记本作为 .py 文件保存到本地 (C:/users/username) 目录,然后使用记事本和以下脚本创建一个批处理文件:

      @echo on 
      call c:\PROGRA~1\Anaconda3\Scripts\activate.bat activate YOURPYTHONENVIRONMENT
      call C:\Users\username\.conda\envs\YOURPYTHONENVIRONMENT\python.exe "C:\Users\username\pythonfile.py"
      pause
      

      使用名称“filename.bat”保存记事本文件,并将文件名替换为您想要的任何内容。将 bat 文件保存在任何地方,我通过工作驱动器上的 bat 文件保存。

      然后打开windows任务计划并创建一个基本任务

      1. 给它一个名字
      2. 设置时间表
      3. 选择“启动程序”作为您要执行的操作
      4. 将bat文件的路径复制粘贴到程序/脚本栏中

      然后完成就完成了,程序将自动执行,无需按您的时间表打开 jupyter。

      【讨论】:

        【解决方案4】:

        我建议你使用papermill 库。它允许您使用命令行运行 Jupyter 笔记本。而且您不需要在后台运行 Jupyter 实例。 检查这个答案:how to run a python jupyter notebook daily automatically

        然后,在 Windows 中使用 Task Scheduler 安排一个每小时任务,当您的计算机启动时将执行该任务。

        【讨论】:

          猜你喜欢
          • 2019-03-25
          • 1970-01-01
          • 2022-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-05
          • 1970-01-01
          相关资源
          最近更新 更多