簡體   English   中英

如何在python腳本中設置環境變量

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

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