导入模块可以在函数中完成,然后传递回调用者,使用这个简单的实用程序。
def import_reload_or_none(name, reload=True):
try:
mod = __import__(name)
if reload:
import importlib
mod = importlib.reload(mod)
return mod
except Exception:
import traceback
traceback.print_exc()
return None
这适用于根级模块,但是我不确定当函数在另一个模块中或者使用相对导入时如何做到这一点。
如何使用此功能来替换例如:
from . import my_package_module
答案 0 :(得分:0)
尝试将路径传递给要导入函数的模块,例如:
def import_reload_or_none(name, reload=True, path=None):
mod = __import__(path + '/' + name) if path is not None else __import__(name)
if reload:
import importlib
mod = importlib.reload(mod)
return mod
然后,如果要使用相对路径导入,可以使用
import_reload_or_none(my_package_module, path = '.')