我正在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
。但它没有用。
这里有什么我想念的吗?
好的,我已经解决了这个问题。在util/__pycache__
目录中有一个文件par.cpython-35.py
与目录包具有相同的名称。这引起了混乱。删除后,问题解决了。
代码中的模块称为“rec-par”,但在尝试导入时,请参阅“rec.par”。