即使我有一个__init__.py,也不是包错误

问题描述 投票:2回答:2

我正在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中使用相同的import命令没有错误。

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

这里有什么我想念的吗?

python python-import
2个回答
3
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.