簡體   English   中英

在python中設置環境變量

[英]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 

    正確解析可能會變得很復雜。

還有另一種我尚未發現或未想到的方法嗎?

一些選項:

  1. https://github.com/mattseymour/python-env
  2. https://github.com/rconradharris/envparse

環境變量的采購很普遍,我不建議自己動手。

暫無
暫無

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

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