2015-10-29 64 views
1

我遇到了SCONScripts和自定義工具在site_tools下的環境差異問題。如何在Scons中找到絕對路徑site_tools

我試圖找到一個字符串的絕對路徑,這是很好的SConscript:)在構建

from SCons.Node.FS import File 
print File('#something').get_abspath() 
>> TypeError: __init__() takes exactly 4 arguments (2 given) 

所以很明顯文件(:

print File('#something').get_abspath() 
>> /home/projects/something 

類似代碼site_tools SConscript不是SCons.Node.FS.File

所以問題是:

1)什麼是在SConscript File對象,我怎麼能得到一個在建築工地/ site_tools?

2)如何獲得site_tools中的絕對路徑?我需要這個,因爲我正在爲需要絕對路徑的工具構建命令行參數。

回答

1

這對我來說看起來像一個XY問題。如果您需要命令行中單個文件或目錄的絕對路徑,則完整路徑的構建應留給SCons本身。 請查看「變量替換」一節下的MAN頁面(http://scons.org/doc/production/HTML/scons-man.html或「man scons」)。您可以將更多的說明符(如您的案例中的abspath)附加到變量,並且在命令執行前它們會被替換。 因此,Builder動作的命令行字符串可能如下所示:

$MYTOOL -i $SOURCE.abspath $TARGET.abspath 
+0

太好了,那正是我需要的!謝謝! – Stefan

相關問題