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

时间:2017-11-22 01:39:44

标签: python batch-file cmd virtualenv

我想使用Windows任务计划程序在虚拟环境中运行python脚本。我希望Scheduler运行一个

的.bat文件
  1. 激活virtualenv
  2. 运行脚本
  3. 这些步骤在命令行中一起工作,它们在.bat中单独工作,但我似乎无法让它们从.bat一起工作。当我尝试执行python脚本并且混淆为什么时,似乎virtualenv没有被完全激活。

    我的.bat看起来像这样:

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

    我已经尝试在调用workon后立即添加超时,并尝试将workon移动到从我的第一个文件调用的单独.bat,但其他行仍然在virtualenv激活之前执行。非常感谢任何帮助!

4 个答案:

答案 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字段中。

windows task scheduler example

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

答案 2 :(得分:0)

编辑 activate.bat 并将此行放在底部:

python yourscript.py

安排 activate.bat 本身,它会在虚拟环境激活后自动运行您的脚本。

答案 3 :(得分:-4)

只需执行如下的activate.bat enter image description here