[英]Setting environment variables within python
這個主題有很多問題,但不幸的是他們沒有解決我的問題。
我有一個Shell腳本,其目的僅在於設置環境變量(我們稱其為env.sh
)。 第二個Shell腳本是源程序env.sh
並使用在那里定義的變量的主程序腳本。 當兩個都是bash腳本時,這很好用。
我有一個問題,我嘗試用python程序替換主shell腳本。 此python程序也確實依賴於env.sh
設置的那些環境變量。
在啟動任何使用這些環境變量的例程之前,我該怎么做才能在python中獲取env.sh
?
我必須在模塊子bash -c source env.sh
運行bash -c source env.sh
但是如果我理解正確的話,這是行不通的,因為變量是在調用python程序的子進程中設置的,因此在父進程中不可用。 這個對嗎?
類似的解決辦法是使用bash -c source env.sh && env
和讀取輸出env
在巨蟒,遍歷列表並寫入os.environ
。 但是,即使已經定義了該方法,該方法也會再次寫入每個變量。 如果有很多變量怎么辦?
我能想到的最后一個解決方案是讀取和解析env.sh
文件並設置可以找到的變量。 一個問題是env.sh
中的某些導出是嵌套的,請注意:
export SOMETHING=$FOO/Bar
正確解析可能會變得很復雜。
還有另一種我尚未發現或未想到的方法嗎?
一些選項:
環境變量的采購很普遍,我不建議自己動手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.