我構建的結構類似:SCons:如何在已用VariantDir調用的SConscript中導入Python模塊?
SConstruct
subdir/SConscript
subdir/module/__init__.py
SConstruct
調用subdir/SConscript
作爲子公司:
# SConstruct
SConscript('subdir/SConscript')
subdir/SConscript
進口module
:
# subdir/SConscript
from module import foo
do SConsy stuff with foo()...
,直到我用variant_dir
與subdir/SConscript
這工作正常:
# SConstruct
SConscript('subdir/SConscript', variant_dir='subdir/build', duplicate=0)
的問題是,import
失敗,因爲module
是道路,這已被variant_dir
改變不再。
是否有標準的方法來解決SCons或Python中的這個問題?我知道site_scons
這個特殊的目錄,但是看起來這個目錄必須以SConstruct
的最高級別存在,我想保留subdir
特定的文件在subdir
之下。
您也可以通過-I或--include-dir選項指定scons的路徑,這樣可以指定python模塊的路徑,但這可能會更困難(每次執行scons時都會輸入更多內容),除非您將呼叫打包到另一個腳本的scons腳本中。 – Brady 2012-03-23 08:11:57
感謝您的回答。其實我試圖避免使用'site_scons'目錄,並最終使用下面的解決方案,但我會接受這個。 – 2012-03-25 01:23:13