相对导入引发ValueError

时间:2012-07-17 09:37:36

标签: python import python-3.x

我有以下目录结构:

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

如何获得此相对导入?

1 个答案:

答案 0 :(得分:3)

我在这里看到的是,在您的情况src中没有导入基础包,这是使用相对导入的必要条件。

如果您编写的脚本src文件夹位于sys.path,因此可导入,其中说明:

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

...

它会起作用。