没有名为urls的模块

29 投票
7 回答
76424 浏览
提问于 2025-04-15 19:50

我正在学习Django教程,现在到了第三部分的最后,主题是解耦URL配置。在这个链接上:http://docs.djangoproject.com/en/1.1/intro/tutorial03/#intro-tutorial03,我遇到了一个错误,提示“No module named urls”。

当我把:

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('mysite.polls.views',
    (r'^polls/$', 'index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
    (r'^admin/', include(admin.site.urls)),
)

改成:

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

我把 include('mysite.polls.urls')), 改成了 include(mysite.polls.urls)),,但还是不行。

这个问题怎么解决呢?

更新2:在 mysite/polls/urls.py 里是

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

更新4:整个项目在这里:

http://www.mediafire.com/?t1jvomjgjz1

7 个回答

8

在我的网站的 polls 文件夹里,有一个叫 __init__.py 的文件吗?

52

我在项目的根目录也遇到了类似的问题……Django 报错说找不到模块 mysite.urls。

后来发现,我在 settings.py 文件里的 ROOT_URLCONF 变量设置错了,原本是用默认值设置的。它不应该是 "mysite.urls",而应该简单地写成 "urls"。

我把它改过来,结果就好了。

8

我在我的电脑上用你的项目文件(Windows 7,Django 1.1.1,Python 2.6.4)无法重现导入错误。所有的导入都正常,但网址的设置不太对(跟教程里说的不一样)。我修正了代码:

/mysite/urls.py:

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

/mysite/polls/urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

访问 http://127.0.0.1:8000/polls/ - 我遇到了一个TemplateDoesNotExist的异常,因为模板文件缺失。

我觉得我的建议可能就是重启一下再试试。 ;)

撰写回答