python manage.py runserver工作正常,但无法运行urls.py而不会导致导入错误

时间:2017-08-18 14:01:19

标签: python django python-import

我关注的是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
>>>

0 个答案:

没有答案