Tôi viết hàm python như thay thế chuỗi và được gọi trong tập lệnh scons.SCons: Cách gọi hàm python tự xác định trong tập lệnh scons và làm phụ thuộc đúng
def Replace(env, filename, old, new):
with open(filename,"r+") as f:
d = f.read()
d = d.replace(old, new)
f.truncate(0)
f.seek(0)
f.write(d)
f.close()
env.AddMethod(Replace,'Replace')
Trong SConscript
lib = env.SharedLibrary('lib', object, extra_libs)
tmp = env.Command([],[],[env.Replace(somefile, 'A', 'b')])
env.Depends(tmp,lib)
gì tôi mong đợi là chạy Phương thức Replace() sau khi lib xây dựng. nhưng scons luôn chạy Replace() trong cụm từ phân tích cú pháp kịch bản lệnh đầu tiên. có vẻ như tôi thiếu một số phụ thuộc.