关于python:激活virtualenv并从.bat运行.py脚本

Activate virtualenv and run .py script from .bat

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

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

    我的.bat看起来像这样:

    1
    2
    3
    call workon venv
    cd path/to/Python/proj
    python -m script.py

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


    您可以在oneliner批处理文件中使用与号&运算符。

    1
    call workon venv & cd path/to/Python/proj & python -m script.py

    它将依次运行每个命令。

    您也可以将"与"号加倍以使其成为条件运算符。 &&

    1
    call workon venv && cd path/to/Python/proj && python -m script.py

    在此命令仅在前一个命令成功完成后才运行,换句话说,就是ERRORLEVEL = 0


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

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

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

    windows task scheduler example

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