【问题标题】:uWSGI Emperor and Django 1.6 incorrectly reading urls.pyuWSGI Emperor 和 Django 1.6 错误读取 urls.py
【发布时间】:2014-01-27 20:23:41
【问题描述】:

我正在为我的网络应用运行一个带有 uWSGI 和 Django 的 Ubuntu 服务器。

我有 uWSGI 在 Emperor 模式下运行,所以我所要做的就是添加一个 ini 文件,uWSGI 会立即为我运行一切。我在服务器上还有 2 个其他应用程序,以相同的方式运行,但由于某种原因,我今天发布的应用程序失败了。

我添加了ini文件,内容如下:

[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

目录结构是这样设置的:

/var/www/site.domain.com
|- site
|--| (Django app stuff)
|- venv
|--bin, include, lib, local

“站点”包括通常在 django-admin.py 启动项目中的所有内容,包括另一个名为“站点”的文件夹,其中包含设置、url、init 和 wsgi 文件。

“venv”是我存储虚拟环境的文件夹(来自 python virtaulenv)

就像我说的,这个站点的设置与我的其他站点完全相同,但是我的日志文件中不断出现此错误:

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)

有什么想法吗?

编辑: 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')),
)

更新: 我从 uwsgi Emperor 中删除了应用程序,并使用 gunicorn 确保它在 Emperor 中没有任何内容,这是输出:

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

看起来几乎是相同的错误..

我正在考虑只是在服务器上逐步重建应用程序以避免此类问题。

【问题讨论】:

  • 请粘贴您的urls.py 好吗?

标签: python django nginx uwsgi


【解决方案1】:

我最终决定从头开始简单地重做应用程序,现在一切似乎都在工作。无论问题是什么,我都无法在新应用程序中重现它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 2013-02-09
    • 2015-05-28
    • 1970-01-01
    • 2013-08-02
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多