:동적 클래스 로딩 부모 모듈은 '플러그인'을 (를) 찾을 수 없습니다 동안 처리 절대 수입
이def load_plugins():
plugins=glob.glob("plugins/*.py")
instances=[]
for p in plugins:
try:
name=p.split("/")[-1]
name=name.split(".py")[0]
log.debug("Possible plugin: %s", name)
f, file, desc=imp.find_module(name, ["plugins"])
plugin=imp.load_module('plugins.'+name, f, file, desc)
getattr(plugin, "__init__")(log)
instances=instances+plugin.get_instances()
except Exception as e:
log.info("Failed to load plugin: "+str(p))
log.info("Error: %s " % (e))
log.info(traceback.format_exc(e))
return instances
코드는 작동하지만 오류가 메인 프로그램 코드에 대해보고되지
plugins/plugin.py:2: RuntimeWarning: Parent module 'plugins' not found while handling absolute import
import os
및 플러그인 작업 : 플러그인 코드에서 각 import 문에 대한이 같은 경고를 얻을.
누군가가 경고의 의미와 내가 잘못하고있는 것을 설명 할 수 있습니까? 비어있는 플러그인 모듈을 따로 생성하여 가져 와서 파이썬을 행복하게 유지해야합니까?
레코드를 들어' 'plugins'''부모 모듈' plugins 'not found'는 [imp.load_module] (https://docs.python.org/2/library/imp.html#imp.load_module)에 전달 된'name' 값에서옵니다. imp.load_module ("plugins.something")'에있는 "plugins.something"을 참조하십시오. 필자의 경우'name' 값은'.something "과 같았고 따라서''plugins'' 대신에''''가 포함되었습니다. – n611x007