当仅在运行时知道包名时,如何使用__import __()导入包?

发布于 2021-01-29 17:18:22

我有一个包含__init__.py文件和另一个模块的消息文件夹(包)messages_en.py。在__init__.py导入的情况下,messages_en它可以正常运行,但是会__import__失败,并显示“
ImportError:No modules named messages_en”

import messages_en # it works
messages = __import__('messages_en') # it doesn't ?

我曾经认为“导入x”只是另一种说法 __import__('x')

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    添加globals参数对我来说就足够了:

    __import__('messages_en', globals=globals())
    

    实际上,__name__这里只需要:

    __import__('messages_en', globals={"__name__": __name__})
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看