![](/img/trans.png)
[英]How to start a batch file from within a python script and detach from it
[英]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.