为什么我的 Python 脚本 运行 在被 Windows 10 Task Scheduler 执行时会有所不同

Why does my Python script run differently when executed by Windows 10 Task Scheduler

我有一个 python 3 脚本,它依赖于(除其他外)seleniumbs4smtplibxlsxwriter。该脚本抓取网站,将大量数据保存到 Excel 文件,然后通过电子邮件将我特别感兴趣的较小数据块通过电子邮件发送给我。我有很多次 运行 这个脚本,它工作正常(即,它写 excel 文件并给我发邮件)。

最近,我在 Windows 10 上使用任务计划程序将此脚本设置为每 24 小时 运行。该程序显然 运行s(并被任务计划程序记录为成功)。问题是当 Task Scheduler 执行程序时,我只收到包含较小数据块的电子邮件。 Excel 文件未写入。

在任务计划程序下,我将以下内容放入 Program/Script 框中:C:\path\to\python\python.exe。在参数下,我输入:C:\path\to\script.py

请注意,根据之前的 SO question,我尝试将 cmd 放在 Program/Script 下,然后将 C:\path\to\python\python.exe C:\path\to\script.py 作为参数。对于后者 cmd 设置,该程序根本没有 运行。

不确定是否相关,但我在我的系统变量路径中添加了 c:\path\to\python\python36-32\c:\path\to\scriptfolder\。我将 #!python3 放在脚本的顶部。谢谢。

已解决。当在 PowerShell 中 运行 时,我的脚本将一个 Excel 文件写入当前工作目录。 运行 通过 Task Scheduler 时,文件被写入“开始于(可选)”框中指定的路径。根据 Whosebug 的建议,我有通往 python.exe 的路径。所以文件写在c:\python\python36-32中。我将 Start in (optional) 框更改为保存 Excel 文件的首选路径并且它起作用了。