LaS*_*ell 4 python python-import importerror python-2.7
这是我的app结构:
foodo/
setup.py
foodo/
__init__.py
foodo.py
models.py
Run Code Online (Sandbox Code Playgroud)
foodo/foodo/foodo.py
从models.py
模块导入类:
from foodo.models import User
Run Code Online (Sandbox Code Playgroud)
抛出一个ImportError
:
ImportError: No module named models
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用相对导入它确实有效:
from models import User
Run Code Online (Sandbox Code Playgroud)
如果我在导入之前输入pdb断点并继续,它也可以工作.
我应该可以使用绝对和相对导入吗?
您在包中有一个本地模块.在查找顶级名称之前,Python 2中的导入始终首先在当前包中查找名称.foodoo
foodoo
重命名包foodoo
内的模块foodoo
(消除了foodoo
首先找到本地的可能性)或使用:
from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)
在软件包顶部的模块中启用Python-3样式导入,其中顶级模块是唯一搜索的模块,除非您在名称前加上.
以使名称相对.有关详细信息,请参阅PEP 328 - 导入:多行和绝对/相对.