18

マルチレベル相対インポート

次のフォルダー構造があります

top\
   __init__.py
   util\
      __init__.py
      utiltest.py
   foo\
      __init__.py
      foo.py
      bar\
         __init__.py
         foobar.py

foobar.pyモジュールからアクセスしたいutiltest.py。相対インポートに従ってみましたが、うまくいきません: from ...util.utiltest import *

私はいつも得る ValueError: Attempted relative import beyond toplevel package

このようなマルチレベルの相対インポートを行う方法は?

4

2 に答える 2

13

foobarの親フォルダからインポートする必要がありますtop:

import top.foo.bar.foobar

これにより、Python がtop最上位パッケージであることがわかります。相対インポートは、パッケージ内でのみ可能です。

于 2012-02-14T13:14:45.637 に答える