簡體   English   中英

如何保持由bat文件設置的系統環境,該文件由python腳本調用

[英]How can I keep the system environments set by a bat file, which called by a python script

我在Python中調用.bat文件來設置系統環境,並檢查系統環境是否設置正確,然后返回運行python代碼,系統環境又變回原始狀態。 我怎么解決這個問題?

環境設置始終在子進程中發生,並且永遠不會直接影響父進程。 但是你可以運行(在同一個子進程中已經改變了它的環境,在該進程的最后)一個命令(在Unix類環境中的env ,我相信在DOS中set .bat文件存在,在Windows中設置.cmd文件類似)將環境輸出到其標准輸出或文件; 父進程可以讀取該文件並將更改應用於其自己的環境。

在Unix中, subprocess.Popen('thescript; env', shell=True, stdout=...)就足夠了。 在Windows中,我不確定傳遞為第一個參數foo.bat; set foo.bat; set會工作; 如果沒有,只需創建一個微小的臨時“輔助蝙蝠”,然后set foo.bat然后運行那個。

我懷疑你是從Python程序調用批處理文件,然后返回調用Python代碼。 子進程(在本例中是對批處理文件的調用)不會影響父進程(批處理文件)的環境。

設置環境的批處理文件通常寫為:

# set up my environment 
python myprogram.py

在這種情況下,從屬Python程序將繼承調用批處理文件的環境。

暫無
暫無

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

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