我正在为我的应用动态加载过滤器。现在我希望能够扩展现有的过滤器:
在我的Main.py中我做了:
spec = importlib.util.spec_from_file_location(filter, file)
inst = importlib.util.module_from_spec(spec)
spec.loader.exec_module(inst)
我有一个名为varianceFilter.py的文件加载并运行良好:
varianceFilter.py:
def run(images):
#do something
return result
现在我想像这样重用和扩展这个过滤器:
testFilter.py:
import varianceFilter as vf
def run(images):
ret = vf.run(images)
#do something with ret
return ret
但是,只要我尝试导入varianceFilter.py异常
No module named 'varianceFilter'
被抛出。两个文件都在同一目录中。 我做错了什么?
编辑:
我的目录结构是:
main.py
filters/varianceFilter.py
filters/testFilter.py
在主目录中创建varianceFilter的副本后,testFilter.py工作正常。
答案 0 :(得分:0)
添加空文件
filters/__init__.py
并将testFilter.py中的import语句更改为
import filters.varianceFilter as vf
修复了问题。