繁体   English   中英

来自。 使用__import__导入x?

[英]from . import x using __import__?

我如何from . import x取得成就from . import x 使用__import__ from . import x (从当前包中导入模块x)?

这是一些失败的尝试:

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

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

如何使用__import__完成此操作?

内置__import__的语义与解释器从import语句生成的字节码相吻合,对于手动使用而言不是特别方便。 如果我正确地了解您要做什么,那么您可以做到:

name = 'x'
mod = getattr(__import__('', fromlist=[name], level=1), name)

在具有importlib的Python版本中,您也许也可以说服importlib.import_module以减少importlib.import_module方式完成您想要的事情,但是我不确定是否可以通过这种方式获得“ from . ”语义。

__import__(__name__, fromlist=['x'])

那应该给您您所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM