Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No module named urls

Tags:

python

django

I'm following the Django Tutorials, I'm at the end of part 3, at Decoupling the URLconfs, at http://docs.djangoproject.com/en/1.1/intro/tutorial03/#intro-tutorial03 and I'm getting a "No module named urls" error message.

When I change:

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)),
)

to:

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)),
)

I changed include('mysite.polls.urls')), to include(mysite.polls.urls)),, but it still didn't work.

How to solve this problem?

UPDATE 2: at mysite/polls/urls.py is

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'),
)

UPDATE 4: the whole project is at

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

like image 238
Delirium tremens Avatar asked Mar 01 '10 01:03

Delirium tremens


6 Answers

I had a similar problem in my project root ... django complained that it couldn't find the module mysite.urls.

Turns out my ROOT_URLCONF variable in settings.py, which was set up using the default values, was set incorrect. Instead of "mysite.urls", it should have been simply "urls"

I changed it, and voila, it worked.

like image 105
Ryan Bagwell Avatar answered Oct 06 '22 06:10

Ryan Bagwell


I can't re-produce the import error on my machine using your project files (Windows 7, Django 1.1.1, Python 2.6.4). Everything imported fine but the urls were not specified properly (like the tutorial shows). Fixing the code:

/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'),
)

Visit http://127.0.0.1:8000/polls/ - I received a TemplateDoesNotExist exception because the template file is missing.

I'm afraid my answer might be to reboot and try it again. ;)

like image 21
Lance McNearney Avatar answered Oct 06 '22 06:10

Lance McNearney


Is there an __init__.py inside mysite/polls/ directory?

like image 24
Carlos H Romano Avatar answered Oct 06 '22 06:10

Carlos H Romano


I did exactly the same thing. Python newbie mistake by reading ahead. I created a file call "polls.url" thinking it was some sort of special django template file.

I misunderstood the text: "Now that we've decoupled that, we need to decouple the polls.urls URLconf by removing the leading "polls/" from each line, and removing the lines registering the admin site. Your polls.urls file should now look like this: "

It should really read: "Now that we've decoupled that, we need to decouple the polls.urls URLconf by removing the leading "polls/" from each line, and removing the lines registering the admin site. Your polls/urls.py file should now look like this: "

like image 28
Brian Schott Avatar answered Oct 06 '22 06:10

Brian Schott


I also had a weird problem with "No module named mysite.urls". The admin site was down and the my whole site.

The solution, after a few hours of searching the web, was on my side : Django is caching some of the settings in a file that he knows from an environment variable.

I just closed my terminal in which i was doing the runnserver thing and opened a new one.

like image 25
Guillaume Gendre Avatar answered Oct 06 '22 05:10

Guillaume Gendre


Late to the party but I fixed my problem by correcting a typo inside settings.py INSTALLED_APPS. I had 'webbapp' instead of 'webapp' so you might want to check on that as well (for people still having the problem)

like image 39
Tudor Avatar answered Oct 06 '22 06:10

Tudor