嵌入python的应用程序有一个脚本文件夹,其中包含python扩展包装代码以及构建在它/其他应用程序代码上的每个代码文件,大致按包中组织。
我想为自定义脚本添加第二个文件夹,以便在应用程序发布后永远不需要更改第一个文件夹,因此可以更新,而不会有杀死自定义代码的风险。
这可以通过将自定义脚本文件夹路径添加到PYTHONPATH来实现,但除了上面描述的需求之外,我希望能够通过复制这些文件来覆盖原始代码库中的某些文件(有选择地)。并调整它们。
我的问题是,如果这些文件在我不想更改的其他模块上进行导入(因此不想复制),则无法找到这些模块,这是因为我覆盖了包作为一个整体。
我“只是”希望采用类似于通过执行
来包装模块的方法from wrapped_mod import *
def overriden_func(somestuff):
print('overridden function, everything else comes out of wrapped_mod')
是否有人提示如何在现有的包层次结构上创建此类“叠加层”?
提前感谢您的想法!