1

SConstruct で新しい環境を作成できることはわかっていますが、何らかの方法でそれが機能し、実行スレッドに沿って環境が渡されます。

これは私のSconstructです:

env = Environment() 
env.SConscript('site_scons/environment.py', 'env')
Export('env')  

これはenvironment.pyです

from SCons.Script import Import # Seems like it's not really needed
Import('env')
env = env.Clone() # NameError: name 'env' is not defined:

興味深いことに、呼び出しのCloneにブレークポイントを配置すると、オブジェクトを使用でき、後でenv例外が発生します。

      5 env = env.Clone()
----> 6 import ipdb; ipdb.set_trace()

ipdb> env
<SCons.Script.SConscript.SConsEnvironment object at 0x2b3dad0>
ipdb> c
NameError: name 'env' is not defined:

現在実行中の環境を取得する適切な方法はありますか?

SConscript だけでなく、Python モジュールで環境オブジェクトを使用する必要があることに注意してください。

4

1 に答える 1

1

exportそれを可能にするには、envを明示的に指定する必要があると思いますimport。こちらを ご覧ください

env = Environment(tools=['default', 'qt4'])
Export('env')
于 2013-07-19T22:59:05.480 に答える