Нет модуля с именем URL - PullRequest
22 голосов
/ 01 марта 2010

Я следую учебным пособиям по Django, я нахожусь в конце части 3, на разделении URLconfs, на http://docs.djangoproject.com/en/1.1/intro/tutorial03/#intro-tutorial03 и получаю сообщение об ошибке «Нет модуля с именем 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 ]

49 голосов
/ 27 мая 2011

У меня была похожая проблема в корне моего проекта ... django пожаловался, что не может найти модуль mysite.urls.

Оказывается, моя переменная ROOT_URLCONF в settings.py, которая была установлена ​​с использованием значений по умолчанию, была установлена ​​неправильно. Вместо «mysite.urls» это должны были быть просто «urls»

Я изменил это, и вуаля, это сработало.

7 голосов
/ 01 марта 2010

Я не могу воспроизвести ошибку импорта на моем компьютере, используя файлы вашего проекта (Windows 7, Django 1.1.1, Python 2.6.4). Все импортировалось нормально, но URL не были указаны правильно (как показано в учебнике). Исправление кода:

/ 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 / опросы / 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, поскольку файл шаблона отсутствует.

Боюсь, мой ответ может состоять в перезагрузке и повторной попытке. ;)

7 голосов
/ 01 марта 2010

Есть ли __init__.py в каталоге mysite / polls /?

4 голосов
/ 27 июля 2011

У меня также была странная проблема с «Ни один модуль с именем mysite.urls». Администратор сайта был недоступен и весь мой сайт.

Решение после нескольких часов поиска в Интернете было на моей стороне: Джанго кэширует некоторые настройки в файле, который он знает из переменной среды.

Я просто закрыл свой терминал, в котором я выполнял работу runnserver, и открыл новый.

1 голос
/ 28 января 2017

Поздно к вечеринке, но я исправил свою проблему, исправив опечатку в settings.py INSTALLED_APPS. У меня было «webbapp» вместо «webapp», так что вы можете также проверить это (для людей, которые все еще имеют проблему)

1 голос
/ 17 января 2011

Я сделал то же самое. Ошибка новичка Python, читая вперед. Я создал файл под названием «polls.url», думая, что это какой-то особый файл шаблона django.

Я неправильно понял текст: «Теперь, когда мы отсоединили это, нам нужно отделить URL-файл polls.urls, удалив начальные« polls / »из каждой строки и удалив строки, регистрирующие сайт администратора. Ваш файл polls.urls теперь должен выглядеть следующим образом: «

Это должно действительно читать: «Теперь, когда мы отсоединили это, нам нужно отделить URL-файл polls.urls, удалив начальные« polls / »из каждой строки и удалив строки, регистрирующие сайт администратора. Ваш файл polls / urls.py теперь должен выглядеть так этот: «

0 голосов
/ 15 октября 2016

Как и Райан Багвелл, проблема была (хотя бы временно) решена путем изменения ROOT_URLCONF в myproject / myproject / settings.py. Мне нужно было добавить «myproject» в ROOT_URLCONF, чтобы получить вот это: "% s.myproject.urls"% PROJECT_APP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...