[英]python importlib.import_module requires explicitly imported module
[英]How to import a module in Python with importlib.import_module
我正在尝试在 Python 2.7.2 中使用importlib.import_module
并遇到奇怪的错误。
考虑以下目录结构:
a | + - __init__.py - b | + - __init__.py - c.py
a/b/__init__.py
有以下代码:
import importlib mod = importlib.import_module("c")
(在实际代码中"c"
有一个名字。)
尝试import ab
,会产生以下错误:
>>> import a.b Traceback (most recent call last): File "", line 1, in File "a/b/__init__.py", line 3, in mod = importlib.import_module("c") File "/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) ImportError: No module named c
我错过了什么?
谢谢!
对于相对进口,您必须:
b) 明确提供锚点
importlib.import_module('.c', 'a.b')
当然,你也可以只做绝对导入:
importlib.import_module('a.b.c')
我认为最好使用importlib.import_module('.c', __name__)
因为您不需要了解a
和b
。
我也想知道,如果你必须使用importlib.import_module('abc')
,为什么不直接使用import abc
呢?
并且不要忘记为每个文件夹/子文件夹创建一个__init__.py
(即使它们是空的)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.