私は importlib.import_module
in Python 2.7.2および奇妙なエラーに遭遇します。
次のディレクトリ構造を考慮してください。
a | +-__init __。py -b | +-__init __。py -c.py
a/b/__init__.py
には次のコードがあります。
import importlib mod = importlib.import_module( "c")
(実際のコードでは"c"
には名前があります。)
import a.b
、次のエラーが発生します。
>>> import ab Traceback(最新のコールラスト): File ""、1行目、 File "a/b/__ init__.py "、3行目 mod = importlib.import_module(" c ") File" /opt/Python-2.7.2/lib/python2.7/importlib/__init__.py "、 37行目のimport_module __import __(name) ImportError:c という名前のモジュールはありません
私は何が欠けていますか?
ありがとう!
相対的なインポートの場合:
b)アンカーを明示的に提供する
importlib.import_module('.c', 'a.b')
もちろん、代わりに絶対インポートを行うこともできます。
importlib.import_module('a.b.c')
a
とb
について知る必要がないので、importlib.import_module('.c', __name__)
を使用した方が良いと思います。
また、importlib.import_module('a.b.c')
を使用する必要がある場合は、単にimport a.b.c
?
また、各フォルダー/サブフォルダーに__init__.py
を作成することを忘れないでください(空であっても)