这是我的应用程序结构:
foodo/
setup.py
foodo/
__init__.py
foodo.py
models.py
foodo/foodo/foodo.py
从导入类models.py
module:
from foodo.models import User
这会抛出一个ImportError
:
ImportError: No module named models
但是,如果我使用相对导入,它确实有效:
from models import User
如果我在导入之前放置一个 pdb 断点并继续,它也可以工作。
我应该能够同时使用绝对导入和相对导入,对吗?
你有一个local module foodoo
在 - 的里面foodoo
包裹。 Python 2 中的导入始终首先在当前包中查找名称,然后再查找顶级名称。
要么重命名foodoo
模块内的foodoo
包(消除了本地foodoo
首先找到)或使用:
from __future__ import absolute_import
位于包中模块的顶部,以启用 Python-3 样式导入,其中顶级模块是唯一搜索的模块,除非您在名称前加上前缀.
使名字相对。看PEP 328——导入:多行和绝对/相对 https://www.python.org/dev/peps/pep-0328/更多细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)