我建议不要将这些路径固定到子模块中,而是在运行时加载这些依赖项。这样,您可以在调用它们时提供路径。这种模式称为dependency injection
另一种解决方案是重构子模块,使其完全不依赖任何外部路径(恕我直言,这将是最干净的解决方案,但并不总是可行且高效)
以下是一般实现 DI 的方法(另外我刚刚注意到您的问题是关于 js,而不是 python。除了语法之外,它应该工作相同):
假设您的 SubModule 名为“mySubModule”,如下所示:
import myModule
def myFunction(myParameter):
myModule.doStuff()
使用依赖注入它看起来像这样:
def myFunction(myModule):
myModule.doStuff()
每次调用myFunction 时,您都必须提供模块myModule 作为参数。像这样:
import mySubModule
import myModule
mySubModule.myFunction(myModule)
您也可以在子模块中使用全局变量:
myModule = None
def myFunction(myParameter):
myModule.doStuff()
在您第一次调用myFunction 之前,您必须从外部设置模块。像这样:
import mySubModule
import myModule
mySubModule.myModule = myModule
mySubModule.myFunction(myModule)
如果您的子模块中有一个类,您还可以将模块作为参数提供给构造函数。我认为这将是最干净的方式