重写SCons缓存复制函数

2024-07-05 09:52:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出当SCons将工件从缓存目录(由CacheDir给定)复制到使用的硬链接时,如何重写该行为。在

我目前的尝试

def link_or_copy_file(class_instance, src, dst):
    # do hardlinking instead...

SCons.Defaults.DefaultEnvironment()._copy_from_cache = link_or_copy_file
SCons.Defaults.DefaultEnvironment()._copy2_from_cache = link_or_copy_file

env = Environment()

env._copy_from_cache = link_or_copy_file
env._copy2_from_cache = link_or_copy_file

env的后续使用没有影响。函数link_or_copy_file从不调用。怎么了?在

以这种方式重写Python类成员函数是不可能的。在

Update:另外请注意,我在调用env.Decider()之后执行此操作,因为此函数可能会覆盖成员_copy_from_cache和{}。在


Tags: or函数from目录envcachelink成员
1条回答
网友
1楼 · 发布于 2024-07-05 09:52:45

我们终于明白了

import SCons.Environment
SCons.Environment.Environment._copy_from_cache = link_or_copy_file
SCons.Environment.Environment._copy2_from_cache = link_or_copy_file

成功了。在

相关问题 更多 >