激活virtualenv并从.bat运行.py脚本

Cla*_*k D 9 python cmd batch-file virtualenv

我想使用Windows Task Scheduler在虚拟环境中运行python脚本。我希望调度程序运行一个.bat文件,该文件将

  1. 激活虚拟环境
  2. 运行脚本

这些步骤从命令行一起工作,并且它们分别在.bat中工作,但是我似乎无法从.bat中使它们一起工作。当我尝试执行python脚本并对原因感到困惑时,似乎virtualenv尚未完全激活。

我的.bat看起来像这样:

call workon venv
cd path/to/Python/proj
python -m script.py
Run Code Online (Sandbox Code Playgroud)

我已经尝试在调用之后立即添加超时,workon并尝试将workonbat.bat从我的第一个文件中移出,但是其他行仍然在激活virtualenv之前执行。任何帮助是极大的赞赏!

小智 15

只需输入

call .\venv\Scripts\activate.bat

在 .bat 文件中以及之后的任何命令都会看到 venv 被激活

cmd 中的记录call会暂停当前脚本的执行,执行被调用的脚本,然后恢复。


Ger*_*ard 8

您可以&在oneliner批处理文件中用作条件运算符。

call workon venv & cd path/to/Python/proj & python -m script.py
Run Code Online (Sandbox Code Playgroud)

基本上,它的作用是将每个命令依次运行。您还可以将以下内容加倍&

call workon venv && cd path/to/Python/proj && python -m script.py
Run Code Online (Sandbox Code Playgroud)

主体是相同的,但是只有前一个命令成功完成后,下一条命令才会运行 ERRORLEVEL = 0


Ali*_*loo 5

在.bat中运行时,无需激活虚拟环境。您需要做的就是在您的虚拟环境中运行python.exe文件。

{path to virtual environment directory}/Scripts/python.exe path/to/your/file.py

在Windows Task Scheduler中,您可以指定打开命令提示符的路径。因此,您所需要做的就是添加操作,在字段中使用python 的路径,在字段中Program/script运行的文件的名称Add arguments以及您的file.pyin Start in字段的路径。

Windows Task Scheduler示例

PS,如果您正在读取或写入python文件中的文件,请注意,您的路径将相对于您start in在“操作”窗口中的字段中指定的路径