簡體   English   中英

激活 virtualenv 並從 .bat 運行 .py 腳本

[英]Activate virtualenv and run .py script from .bat

我想使用 Windows 任務計划程序在虛擬環境中運行 python 腳本。 我希望調度程序運行一個 .bat 文件,它將

  1. 激活虛擬環境
  2. 運行腳本

這些步驟從命令行一起工作,它們在 .bat 中單獨工作,但我似乎無法從 .bat 中讓它們一起工作。 當我嘗試執行 python 腳本並不清楚為什么時,virtualenv 似乎沒有完全激活。

我的 .bat 看起來像這樣:

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

我嘗試在調用workon后立即添加超時,並嘗試將workon移動到從我的第一個文件調用的單獨 .bat 中,但其他行仍然在激活 virtualenv 之前執行。 任何幫助是極大的贊賞!

在 .bat 中運行時不需要激活虛擬環境。 您需要做的就是在您的虛擬環境中運行 python.exe 文件。

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

在 Windows 任務計划程序中,您可以指定打開命令提示符的路徑。 因此,您需要做的就是在添加操作時,在Program/script字段中使用 python 的路徑,在Add arguments字段中使用要運行的文件的名稱,在Start in字段中使用file.py的路徑。

Windows 任務調度程序示例

PS,如果您在 python 文件中讀取或寫入文件,請注意您的路徑將相對於您在操作窗口的start in字段中指定的路徑

您可以在 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

編輯activate.bat並將此行放在底部:

python yourscript.py

安排activate.bat本身,它會在虛擬環境激活后自動運行您的腳本。

只需執行 activate.bat 如下在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM