我关注的是djangobook网站。我刚刚开始,我的项目结构如下:
mysite
mysite
__init__.py
settings.py
urls.py
views.py
wsgi.py
manage.py
外部mysite位于pythonpath上的目录中。因此,如果我想在python控制台中从views.py导入一些东西,我必须构造一个导入:
from mysite.mysite.views import hello
但是,运行服务器时当前工作的urls.py中的实际实现是:
from mysite.views import hello
如果我尝试在控制台中使用这个单独的mysite相对导入来导入hello,它将失败。为什么我执行时不会失败:
python manage.py runserver
以下是失败导入的回溯,然后成功导入:
(django_env) C:\>python
Python 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC
v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from mysite.views import hello
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'mysite.views'
>>> from mysite.mysite.views import hello
>>>