On 16 sep, 18:06, cool-RR <ram.rac...@gmail.com> wrote: > Hello! > > There's something that's bothering me: > > When developing a Django application, what is `sys.path` supposed to > contain? The directory which contains the project, or the directory of > the project, or both?
sys.path always starts with the directory where the current script lives - so when running './manage.py runserver', sys.path will always starts with your project's directory. This is teh default Python behaviour. Also and IIRC, django adds the project's parent directory to sys.path too. > What led me to this question is a failure when using > `urlresolvers.reverse`. It's giving me a `NoReverseMatch` error, and > it seems that the reason is that there are two different versions of > my view function; One with a `__module__` of `my_app.views` and one > with a `__module__` of `my_project.my_app.views`. I bet you have a full import (=> 'myproject.my_app.views') somewhere in your sources. As far as I'm concerned, I *never* use any reference to the project's package in my imports - this gives much more flexibility (you can rename your project's directory, move apps outside the project's directory etc without having to update all your imports). The only caveat is that, when deploying with mod_wsgi, you have to make sure you add the project's directory itself to sys.path (which is no bige deal). -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.