如何使用from . import x
实现__import__
(从当前包导入模块x)?
以下是一些失败的尝试:
>>> __import__('.', fromlist=['x'])
ValueError: Empty module name
>>> __import__('.x')
ValueError: Empty module name
如何使用__import__
完成此操作?
答案 0 :(得分:3)
__import__
内置语义与解释器从import
语句生成的字节码相吻合,对于手动使用并不是特别方便。如果我理解你的目的是什么,这就是你想要的:
name = 'x'
mod = getattr(__import__('', fromlist=[name], level=1), name)
在拥有importlib
的Python版本中,您可能也能够说服importlib.import_module
以更低的丑闻做您想做的事,但我不确定是可能以这种方式获得“from .
”语义。
答案 1 :(得分:2)
__import__(__name__, fromlist=['x'])
那应该能满足你的需求。