0

私は次のディレクトリ構造を持っています:

src
   __init__.py
   foo1
       __init__.py
      foo1.py
   foo2
     __init__.py
     foo2.py

ここで、foo2.pyからモジュールfoo1.pyをインポートします。foo2.pyでインポートしましfrom ..foo1.foo1 import *たが、取得するのは次のとおりです。

Traceback (most recent call last):
  File "foo2.py", line 3, in <module>
    from ..foo1.foo1 import *
ValueError: Attempted relative import in non-package

この相対インポートを取得するにはどうすればよいですか?

4

1 に答える 1

3

ここで私が見ているのは、基本パッケージ(あなたの場合srcはインポートされていない)です。これは、相対インポートを使用するために必要な条件です。

srcフォルダがにあるsys.path、つまりインポート可能であるというスクリプトを作成すると、次のようになります。

import src #this imports the base package
from src.foo2.foo2 import *

...

それが動作します。

于 2012-07-17T12:25:56.993 に答える