2012-07-17 70 views
0

我有以下目录结构:相对进口引发ValueError异常

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 

如何获得这种相对进口?

回答

3

我在这里看到的是,基本包,在你的案例src尚未导入,这是使用相对导入的必要条件。

如果你写一个脚本,该src文件夹是在sys.path,从而导入的,其中规定:

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

... 

它将工作。