我有一个简单的Python脚本,当我在Jupyter Notebook中启动它或将其转换为.exe之后,它可以正确运行,但是当我通过Windows Scheduler启动它时却无法正常工作(我尝试同时启动.py文件和和.exe)。我想念什么?
背景:
我有一个简单的3.7 Python脚本,希望定期运行。在移到更复杂的脚本之前,我正在用一个简单的Python脚本测试该方法。
当我在Jupyter中启动脚本时,我拥有的脚本运行良好,但是在使用Windows Scheduler时却无法正常运行。我所做的是,我在Windows Scheduler中创建了一个基本任务,并设置了以下属性:
当我单击Windows Scheduler中的RUN任务时,类似命令的黑色背景窗口会显示几秒钟,然后消失,但是什么也没有发生,并且输出txt文件也没有被编辑。我没有收到错误消息,当我检查任务的“历史记录”时,它显示“任务已完成”或“任务注册已更新”。基本上,似乎没有错误,但是什么也没发生。
我想使用Windows Scheduler解决此问题,但是我愿意就定期运行脚本的方式提出建议。但是,我是一个非常基本的Python用户,可能无法做更复杂的事情。我的系统是Windows 10 Home,Python 3.7。
我正在使用的简单代码:
import datetime
now = datetime.datetime.now()
file = open("testfile.txt","w")
file.write("Hello Word" + str(now))
print("done")
注意:该脚本将日期戳写入.ipynb文件同一文件夹中的文本文件中。我还使用pyinstaller将文件转换为.exe。在两种情况下,脚本都可以正常运行。但是,它不适用于Windows Scheduler。
答案 0 :(得分:0)
以我的经验,Windows Task Scheduler在Python中不能很好地发挥作用。尝试使用以下命令创建.bat文件:
cmd full\path\to\python.exe "full\path\to\script.py" > output.log 2>&1
这是一个批处理文件,它将打开cmd.exe,并在python可执行文件上执行脚本。然后它将STDOUT和STDERR重定向到文件,以便您可以查看出了什么问题。
告诉Task Scheduler运行该批处理文件(没有其他参数),而不是运行Python脚本,然后查看日志内容。要么可以与批处理文件一起正常运行,要么可以获取更多信息来进行故障排除。