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 モジュールで環境オブジェクトを使用する必要があることに注意してください。