使用 Windows 任务计划程序时 Python 脚本找不到文件

问题描述 投票:0回答:1

我有一个批处理文件来执行Python并运行一个Python脚本,该脚本在手动运行时工作正常。但是,当使用 Windows 任务计划程序运行时,Python 脚本会向我提供回溯,因为它找不到与 Python 脚本位于同一文件中的 .txt 文件。

“批处理文件可以手动工作,但不能与任务计划程序一起工作”问题有多种形式。我认为我的问题可能与我的Python脚本位于虚拟环境中有关。它还可能与 Windows 用户帐户和权限有关。过去有关任务计划程序的帖子已通过更改与用户帐户相关的设置来解决,但到目前为止,这对我来说还不起作用。

有关 Windows 任务计划程序设置的更多详细信息:

以下是我为任务选择的设置:

当我使用“仅在用户登录时运行”选项时,我的任务最接近工作。如果我选择“无论用户是否登录都运行”,任务会打开命令提示符,但似乎不会执行任何操作。

有关批处理文件的更多详细信息

我的批处理文件如下所示:

"C:\Users\MyPathtovirtualenvironment\virtualenv\Scripts\python.exe" "C:\Users\fried\Desktop\calendaralert\court_calendar_alert1.3_automatic.py" 
pause

手动运行时,它会执行预期的操作:从虚拟环境中执行 Python,然后加载 Python 脚本,该脚本运行正常,除非从 Windows 任务计划程序运行。

有关 Python 脚本的更多详细信息

Python 脚本在命令提示符下单独运行并作为批处理文件运行时工作正常,因此我认为它没有任何直接问题。这是导致回溯的脚本部分。

with open('replacements.txt') as f:
    replacements = dict(x.rstrip().split("!") for x in f)

replacements.txt 文件与我的 Python 程序位于同一文件夹中。我还尝试将文件的副本放入虚拟环境文件夹和 /scripts 子文件夹中,但没有成功。

python virtualenv windows-task-scheduler
1个回答
0
投票

刚刚在 Windows ec2 实例上运行 python 脚本时遇到了这个问题。通过在顶部添加以下内容解决了问题:

import os
path = "your-directory-path"
os.chdir(path)
© www.soinside.com 2019 - 2024. All rights reserved.