I finally decided to simply redo the application from scratch, and everything seems to be working now. Whatever the problem was, I wasn't able to reproduce it in the new application.
uWSGI Emperor and Django 1.6 incorrectly reading urls.py
Вопрос
I'm running a Ubuntu server with uWSGI and Django for my web apps.
I have uWSGI running in Emperor mode, so that all I have to do is add an ini file, and uWSGI immediately runs everything for me. I have 2 other apps on the server, running the same way, but for some reason the app I put up today is failing.
I added the ini file with the following contents:
[uwsgi]
# variables
projectname = site
projectdomain = site.domain.com
base = /var/www/site.domain.com
# config
protocol = uwsgi
venv = %(base)/venv
pythonpath = %(base)/%(projectname)
module = %(projectname).wsgi
socket = /tmp/%(projectname).sock
chmod-socket = 666
logto = /var/log/uwsgi/%(projectname).log
plugins=python
The directory structure is setup like so:
/var/www/site.domain.com
|- site
|--| (Django app stuff)
|- venv
|--bin, include, lib, local
"site" includes everything that would normally be in a django-admin.py startproject, including another folder called "site" with the settings, urls, init, and wsgi files.
"venv" is a folder I store my virtual environment in (from python virtaulenv)
And like I said, this site is setup exactly the same as my other sites, however I keep getting this error in my log file:
Traceback (most recent call last):
File "/var/www/site.domain.com/venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
def _get_get(self):
File "/var/www/site.domain.com/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 49, in load_middleware
raise exceptions.ImproperlyConfigured('%s isn\'t a middleware module' % middleware_path)
File "/var/www/site.domain.com/venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__
translation.activate(language)
File "/var/www/site.domain.com/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 350, in url_patterns
except TypeError:
django.core.exceptions.ImproperlyConfigured: The included urlconf site.urls doesn't have any patterns in it
[pid: 2705|app: 0|req: 6/7] 131.118.85.3 () {38 vars in 702 bytes} [Mon Jan 27 20:10:28 2014] GET / => generated 0 bytes in 0 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
Any ideas?
EDIT: urls.py
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^ckeditor/', include('islam_site.ckeditor_urls')),
url(r'^blog/', include('zinnia.urls')),
(r'^comments/', include('django.contrib.comments.urls')),
url(r'^comments/', include('django.contrib.comments.urls')),
url(r'^', include('cms.urls')),
)
UPDATE: I striped the application out of uwsgi emperor, and used gunicorn to make sure it wasn't anything in emperor and this was the output:
gunicorn site.wsgi:application
2014-01-27 21:08:23 [336] [INFO] Starting gunicorn 18.0
2014-01-27 21:08:23 [336] [INFO] Listening at: http://127.0.0.1:8000 (336)
2014-01-27 21:08:23 [336] [INFO] Using worker: sync
2014-01-27 21:08:23 [341] [INFO] Booting worker with pid: 341
2014-01-28 02:08:27 [341] [ERROR] Error handling request
Traceback (most recent call last):
File "/var/www/domain/venv/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 131, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
self.load_middleware()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 49, in load_middleware
mw_instance = mw_class()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__
for url_pattern in get_resolver(None).url_patterns:
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 346, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 341, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/var/www/domain/site/site/urls.py", line 6, in <module>
admin.autodiscover()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 29, in autodiscover
import_module('%s.admin' % app)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/contrib/sites/admin.py", line 9, in <module>
admin.site.register(Site, SiteAdmin)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 92, in register
admin_class.validate(model)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 105, in validate
validator = cls.validator_class()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/contrib/admin/validation.py", line 20, in __init__
models.get_apps()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 139, in get_apps
self._populate()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
self.load_app(app_name, True)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
models = import_module('%s.models' % app_name)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/var/www/domain/venv/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 63, in <module>
patch_root_urlconf()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/debug_toolbar/models.py", line 51, in patch_root_urlconf
reverse('djdt:render_panel')
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 480, in reverse
app_list = resolver.app_dict[ns]
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 310, in app_dict
self._populate()
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 262, in _populate
for pattern in reversed(self.url_patterns):
File "/var/www/domain/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 350, in url_patterns
raise ImproperlyConfigured("The included urlconf %s doesn't have any patterns in it" % self.urlconf_name)
ImproperlyConfigured: The included urlconf site.urls doesn't have any patterns in it
It looks like mostly the same error..
I'm considering just rebuilding the app step by step on the server to avoid this kind of problem.
Решение