[英]how to set environment variable in python script
我正在使用SCONS施工工具。
我無法使用在python腳本中初始化的環境變量。
在“我的項目”中,USER可以更改一些變量以與編譯器一起使用。
為此,我們有2個文件。
Config.py具有所有變量,例如包含目錄,CFLAGS,CPPDEFINES等。因此,在這里我們可以設置一些變量。 這些變量我需要在Sconstruct文件中使用。 在config.py我設置如下變量
SCONS_INC = "Include files"
os.environ["SCONS_INC"] = SCONS_INC
我需要在Sconstruct File中使用這些變量。 該代碼是
env["CPPPATH"] = os.environ["SCONS_INC"]
但是我收到了類似未定義變量SCONS_INC的錯誤。
這個怎么做?
默認情況下,SCons不使用調用的環境,這是為了確保無論環境具有哪種配置,都可以重現構建。
環境變量存儲在scons環境中,位於鍵ENV
下,因此您可以像這樣訪問常規環境變量:
env = Environment()
variable = env['ENV']['SomeVariable']
env['ENV']['SomeVariable'] = SomeValue
我理解您的問題,就像您需要在SCons中使用python腳本中設置的變量一樣。 為此,您需要使用您結合描述的兩種方法來轉移它們。
env = Enviroment()
python_variable = os.environ['SomeVariable']
env['ENV']['SomeVariable'] = python_variable
但是,我也許會建議其他控制構建的方法,因此您不必再去麻煩轉移環境變量。 恕我直言,使用參數更簡單。 參數只是由scons調用生成的dict,因此當您說:
scons -D some_argument=blob
您可以通過以下簡單方法獲得該參數:
some_variable = ARGUMENTS["some_argument"]
當然,我不知道為什么需要環境變量,因此這可能與您完全無關。
我曾經有過類似的需求,其中編譯器正在尋找尚未設置的某個Env變量。 我能夠解決此問題,如下所示:
env = Environment()
env['ENV']['THE_VARIABLE'] = 'SomeValue'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.