来自。使用__import__导入x?

时间:2011-12-06 23:25:25

标签: python import module python-3.x

如何使用from . import x实现__import__(从当前包导入模块x)?

以下是一些失败的尝试:

>>> __import__('.', fromlist=['x'])
ValueError: Empty module name

>>> __import__('.x')
ValueError: Empty module name

如何使用__import__完成此操作?

2 个答案:

答案 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'])

那应该能满足你的需求。