![](/img/trans.png)
[英]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.