我想使用Windows任务计划程序在虚拟环境中运行python脚本。我希望Scheduler运行一个
的.bat文件这些步骤在命令行中一起工作,它们在.bat中单独工作,但我似乎无法让它们从.bat一起工作。当我尝试执行python脚本并且混淆为什么时,似乎virtualenv没有被完全激活。
我的.bat看起来像这样:
call workon venv
cd path/to/Python/proj
python -m script.py
我已经尝试在调用workon
后立即添加超时,并尝试将workon
移动到从我的第一个文件调用的单独.bat,但其他行仍然在virtualenv激活之前执行。非常感谢任何帮助!
答案 0 :(得分:2)
您可以在oneliner批处理文件中使用&
作为条件运算符。
call workon venv & cd path/to/Python/proj & python -m script.py
基本上它的作用是它会在另一个之后运行每个命令。您还可以加倍&
:
call workon venv && cd path/to/Python/proj && python -m script.py
主体是相同的,但是如果上一个命令成功完成,则只运行下一个命令,换句话说ERRORLEVEL = 0
答案 1 :(得分:2)
在.bat中运行时,您无需激活虚拟环境。您需要做的就是在您的虚拟环境中运行python.exe文件。
{path to virtual environment directory}/Scripts/python.exe path/to/your/file.py
在Windows Task Scheduler中,您可以指定打开命令提示符的路径。因此,您要做的就是添加操作,在Program/script
字段中使用python的路径,在Add arguments
字段中运行的文件的名称以及{{1 }}在file.py
字段中。
P.S,如果您正在读取或写入python文件中的文件,请注意,您的路径将相对于您在“操作”窗口的Start in
字段中指定的路径
答案 2 :(得分:0)
编辑 activate.bat
并将此行放在底部:
python yourscript.py
安排 activate.bat
本身,它会在虚拟环境激活后自动运行您的脚本。
答案 3 :(得分:-4)