如何在Scons site_tools中找到绝对路径

时间:2015-10-29 12:37:22

标签: python scons

我遇到了site_tools下SConscripts和自定义工具之间环境差异的问题。

我试图找到字符串的绝对路径,这在SConscript中很好:

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

site_tools中的类似代码:

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

很明显,SConscript中构造的File()不是SCons.Node.FS.File

所以问题是:

1)SConscript中的File对象是什么,如何在builder / site_tools中获取?

2)如何获取site_tools中的绝对路径?我需要这个,因为我为需要绝对路径的工具构建命令行参数。

1 个答案:

答案 0 :(得分:1)

这看起来像是一个XY问题。如果您需要命令行中单个文件或目录的绝对路径,则完整路径的构造应留给SCons本身。 请在"变量替换"部分下方查看MAN页面(http://scons.org/doc/production/HTML/scons-man.html或" man scons")。您可以将其他说明符(例如abspath)添加到变量中,并在命令执行之前替换它们。 因此,Builder操作的命令行字符串可能如下所示:

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