有人可以告诉我有关其工作原理的完整说明:
虽然models.py和views.py位于django应用程序的同一目录中,但我们为什么要使用相对导入:
app1:
models.py
# my models was defined here
views.py
from .models import * # this works
from app1.models import * # this also works
from models import * # ---this one does not work ---
admin.py
会发生同样的情况如果我导入
from .models import *
然后
python manage.py check
一切都好 但是
from models import *
python manage.py check
ImportError: No module named 'models
“
我现在正在使用python 3.4.x而且我没有2.7.x的这个问题
答案 0 :(得分:1)
了解您正在使用的Python版本会有所帮助,但我猜它是Python 3.引用PEP 8:
永远不应该使用隐式相对导入,并且已在Python 3中删除。
我建议阅读PEP 8关于进口的部分,在这里:https://www.python.org/dev/peps/pep-0008/#imports
如果你想了解更多关于这个主题的内容,我会建议PEP 328,它会更详细地介绍绝对与相对进口的理由。
这是另一个关于python 3相对导入的更清晰描述的链接: