importlib.import_module を使用して Python でモジュールをインポートする方法 質問する

importlib.import_module を使用して Python でモジュールをインポートする方法 質問する

使用しようとしていますimportlib.import_modulePython 2.7.2 で奇妙なエラーに遭遇しました。

次の dir 構造を考えてみましょう。

    1つの
    |
    + - __init__.py
      - ば
        |
        + - __init__.py
          - c.py

a/b/__init__.py次のコードがあります:

    インポートimportlib

    mod = importlib.import_module("c")

(実際のコードには"c"名前があります。)

を試行するとimport a.b、次のエラーが発生します。

    >>> インポート
    トレースバック(最新の呼び出しが最後):
      ファイル ""、行 1、
      ファイル「a/b/__init__.py」、3行目、
        mod = importlib.import_module("c")
      ファイル "/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py"、import_module の 37 行目
        __import__(名前)
    ImportError: c という名前のモジュールがありません

何が足りないのでしょうか?

ありがとう!

ベストアンサー1

相対インポートの場合は、次の操作を行う必要があります。

  • a) 相対名を使用する
  • b) アンカーを明示的に提供する

    importlib.import_module('.c', 'a.b')
    

もちろん、代わりに絶対インポートを実行することもできます。

importlib.import_module('a.b.c')

おすすめ記事