簡體   English   中英

從 1 個批處理文件啟動 2 個 VENV 和 2 個 Python 程序

[英]Start 2 VENVs and 2 Python programs from 1 Batch file

我有 2 個 python 程序充當“服務”,每個程序都從自己的 venv 運行。 我正在尋找創建一個批處理文件來啟動這兩個服務,每個服務都在自己的專用終端上。

我能夠創建 1 個批處理文件來啟動 venv 和服務,但我無法將它們合並到一個批處理文件中。

CALL <PATH_TO_VENV_SCRIPTS>\activate
"<PATH_TO_PYTHON_FILE>main.py"
pause

當我運行上面的文件時,會打開一個終端,激活 venv,並使用 venv 運行 main.py。

現在我正在嘗試使用 1 批來啟動這兩項服務。 我有以下內容:

START <PATH_TO_VENV1_ACTIVATE.BAT>
"<PATH_TO_SERVICE1_PYTHON_FILE>main.py"

START <PATH_TO_VENV2_ACTIVATE.BAT>
"<PATH_TO_SERVICE2_PYTHON_FILE>main.py"

上面的文件確實打開了 2 個終端,並激活了兩個 VENV,但不幸的是 python 文件是從在上述 2 之前打開的第三個終端啟動的。

如何從他們自己的 VENV 終端啟動 python 文件?

任何幫助是極大的贊賞。

提前致謝!

您必須在新創建的 venv 終端中將 python 文件作為命令啟動。 如果從父腳本啟動 python 服務,它們將在此終端上下文中執行。

換句話說:您必須將腳本的執行包含在您的PATH_TO_VENV1_ACTIVATE.BAT中。 但是,如果您的 python 腳本在執行后沒有終止,那么您將永遠無法到達那里,並且“父”終端將掛在第一個腳本上。 因此,請確保腳本以不會阻塞父調用上下文的方式運行。

高溫高壓

編輯:如果您的腳本無論如何都在啟動服務,請考慮創建一個容器並從那里啟動它們。 因此,您擁有一個封裝的上下文,並且易於執行。

暫無
暫無

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

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