gpt4 book ai didi

waf - 为什么 waf 找不到存在的路径?

转载 作者:行者123 更新时间:2023-12-04 18:06:53 27 4
gpt4 key购买 nike

假设我在 /mydir/a/b 中有 x.y 文件(在 Linux 上)
当我运行 waf 时,它没有找到该文件。

def configure(context):
pass

def build(build_context):
build_context(source='/mydir/a/b/x.y',
rule='echo ${SRC} > ${TGT}',
target='test.out')

结果:未找到源:'/mydir/a/b/x.y' in bld(features=[], idx=1, meths=['process_rule', 'process_source' ] ...

好的,也许你想要一个相对路径,Waf?你不告诉我吗?

def build(context):

path_str = '/mydir/a/b'
xy_node = context.path.find_dir(path_str)
if xy_node is None:
exit ("Error: Failed to find path {}".format(path_str))

# just refer to the current script
orig_path = context.path.find_resource('wscript')
rel_path = xy_node.path_from(orig_path)

print "Relative path: ", rel_path

结果:错误:找不到路径/mydir/a/b

但是那个目录存在!这是怎么回事?

而且,顺便说一句,某些子目录(它可以找到)的相对路径是一次性的。例如当前目录下的 a/b 导致相对路径“../a/b”。我希望“a/b”

最佳答案

通常每个上下文中(至少)有两个节点对象: - 路径:指向 wscript 的位置 - root: 指向文件系统根

所以在你的情况下,解决方案是使用 context.root:

def build(context):
print context.path.abspath()
print context.root.abspath()

print context.root.find_dir('/mydir/a/b')

关于waf - 为什么 waf 找不到存在的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com