【发布时间】:2018-12-06 22:39:07
【问题描述】:
我有一个自动查询数据库的笔记本,然后每小时将结果推送到谷歌表格,但需要在计算机上不断运行才能工作。如何在我的计算机启动时自动运行 Jupiter notebook(我经常重启)谢谢!
【问题讨论】:
标签: python-3.x jupyter-notebook
我有一个自动查询数据库的笔记本,然后每小时将结果推送到谷歌表格,但需要在计算机上不断运行才能工作。如何在我的计算机启动时自动运行 Jupiter notebook(我经常重启)谢谢!
【问题讨论】:
标签: python-3.x jupyter-notebook
我实际上并没有尝试过使用 Anaconda,但该解决方案应该具有可比性。这个想法是创建vb 脚本并从计划任务中运行它。
创建 jupyter-cron.vbs
Set run = WScript.CreateObject("WScript.Shell")
run.Run "jupyter-notebook.exe --no-browser --notebook-dir=C:\Notebooks", 0, True
注意:使用 --no-browser 选项阻止浏览器启动。该脚本将使用隐藏窗口运行。不要忘记更新笔记本目录的路径。
创建 jupyter-cron.bat
start /B "C:\Windows\SysWOW64\cscript.exe" "C:\Localdata\jupyter-cron.vbs"
注意:此位置适用于 64 位系统,32 位系统使用 C:\Windows\System32\cscript.exe。不要忘记更新 vbs 脚本的路径。
【讨论】:
以下是我使用 Johnny 的步骤作为模板的方法。 (我会回复他的帖子,但我没有足够的代表。)
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
jupyter.bat 文件,就像 Johnny 提到的那样。将 $pathToVbsScript 替换为您在步骤 1 中创建的 vbs 文件的路径。start /B "C:\Windows\SysWOW64\cscript.exe" "C:\{$pathToVbsScript}\jupyter.vbs"
【讨论】:
这就是我使用 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任务计划并创建一个基本任务
然后完成就完成了,程序将自动执行,无需按您的时间表打开 jupyter。
【讨论】:
我建议你使用papermill 库。它允许您使用命令行运行 Jupyter 笔记本。而且您不需要在后台运行 Jupyter 实例。
检查这个答案:how to run a python jupyter notebook daily automatically
然后,在 Windows 中使用 Task Scheduler 安排一个每小时任务,当您的计算机启动时将执行该任务。
【讨论】: