即使我在其中有__init__.py

时间:2016-07-15 00:51:50

标签: python python-import

我正在Macbook上做一个项目,它的系统是OS X 10.11.5。我使用Python 3.5并有一个像这样的目录

rec-par/
    rec/
        __init__.py
        cle/
            __init__.py
            c.py
        par/
            __init__.py
            b.py
        util/
            __init__.py
            a.py
a.py中的

import喜欢

from rec.par.b import *

它出现了像'No module name rec.par , rec is not a package'这样的错误。我添加了路径' rec-par'对于sys.path和cle/c.py,同一导入命令没有错误。

我尝试了问题How to fix "Attempted relative import in non-package" even with __init__.py中给出的方法, 使用python3 -m a.py。但它没有用。

这里有什么我想念的吗?

2 个答案:

答案 0 :(得分:3)

好的,我已经解决了这个问题。在目录util/__pycache__中 有一个文件par.cpython-35.py与目录包具有相同的名称。这引起了混乱。删除后,问题解决了。

答案 1 :(得分:0)

代码中的模块名为" rec-par",但在尝试导入时,请参阅" rec.par"。