2012-12-22 45 views
1

Django的:1.3.5
nginx的:1.2.6
uwsgi:1.0.5「導入錯誤:沒有模塊名爲網址」 發生在Django管理

我Django應用程序上的nginx和uwsgi運行。 打開管理頁面時,出現500錯誤。 這個錯誤是「ImportError:No module named urls」。

運行命令「python manage.py runserver」並打開管理頁面,然後沒有發生500錯誤。

評論管理員對urls.py,然後錯誤不會發生。

這個錯誤只發生在nginx和uwsgi上。

我該如何解決呢?

urls.py

from django.conf.urls.defaults import * 
from django.conf import settings 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
         (r'^blog/', include('myApp.blog.urls')), 
         (r'^admin/', include(admin.site.urls)) 
         ) 

wsgi.py

import os 
import sys 
import site 

reload(sys) 
sys.setdefaultencoding('utf-8') 
sys.path.append('/path/to/myApp/') 

site.addsitedir('/usr/lib/python2.6/site-packages') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myApp.settings' 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

錯誤回溯

Traceback (most recent call last): 

File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 

File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 214, in wrapper 
    return self.admin_view(view, cacheable)(*args, **kwargs) 

File "/usr/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view 
    response = view_func(request, *args, **kwargs) 

File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py", line 79, in _wrapped_view_func 
    response = view_func(request, *args, **kwargs) 

File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 197, in inner 
    return view(request, *args, **kwargs) 

File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py", line 79, in _wrapped_view_func 
    response = view_func(request, *args, **kwargs) 

File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 382, in index 
    context_instance=context_instance 

File "/usr/lib/python2.6/site-packages/django/shortcuts/__init__.py", line 20, in render_to_response 
    return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 

File "/usr/lib/python2.6/site-packages/django/template/loader.py", line 188, in render_to_string 
    return t.render(context_instance) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 123, in render 
    return self._render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 127, in render 
    return compiled_parent._render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 127, in render 
    return compiled_parent._render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py", line 311, in render 
    return self.nodelist_true.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py", line 311, in render 
    return self.nodelist_true.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 64, in render 
    result = block.nodelist.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/usr/lib/python2.6/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py", line 437, in render 
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app) 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 391, in reverse 
    *args, **kwargs))) 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 312, in reverse 
    possibilities = self.reverse_dict.getlist(lookup_view) 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 229, in _get_reverse_dict 
    self._populate() 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 208, in _populate 
     For name in pattern.reverse_dict: 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 229, in _get_reverse_dict 
    self._populate() 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 208, in _populate 
     For name in pattern.reverse_dict: 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 229, in _get_reverse_dict 
    self._populate() 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 197, in _populate 
     For pattern in reversed(self.url_patterns): 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 279, in _get_url_patterns 
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 

File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py", line 274, in _get_urlconf_module 
    self._urlconf_module = import_module(self.urlconf_name) 

File "/usr/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 

ImportError: No module named urls 

settings.py(INSTALLED_APPS)

ROOT_URLCONF = 'myApp.urls' 
INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.admin', 
    'django.contrib.sitemaps', 
    'django.contrib.markup', 
    'myApp.blog', 
) 
+0

也發佈你的'settings.py'(刪除祕密數據) –

+0

@Hedde我貼了settings.py(INSTALLED_APPS)。 – lxmyys

+0

打開一個python shell並輸入:from django.conf.urls.defaults import *如果它不能導入並顯示錯誤,那麼這個url包中沒有安裝 但是如果python shell可以導入,也許你有一個重複,干擾了url解析過程。 – Mohammad

回答

0

你如何開始你的uwsgi過程?您的uwsgi進程需要從項目根目錄的位置開始。

我配置我的uwsgi初始化文件,給它一個PROJECT_HOME環境變量,它在我的進程用戶的.bash_profile文件中定義。

在我的過程中用戶的.bash_profile,我有: -

export PROJECT_HOME=/var/www/myproject 

然後,在我的uwsgi初始化文件,我有: -

[uwsgi] 

if-env = PROJECT_HOME 
chdir = %(_) 
touch-reload = %(_)/uwsgi.ini 
daemonize = %(_)/myproject.log 
endif = 

if-env = VIRTUAL_ENV 
virtualenv = %(_) 
endif = 

socket = 127.0.0.1:3030 
pidfile=/tmp/myproject.pid-3030 
processes = 4 
module = django.core.handlers.wsgi:WSGIHandler() 
env = DJANGO_SETTINGS_MODULE=myproject.settings 
master = True 
vacuum = True 
max-requests = 5000 
logdate = True 

enable-threads = True 
single-interpreter = True 

chdir配置在這個uwsgi.ini文件告訴我uwsgi進程從這個目錄開始進程,並在PYTHONPATH中包含這個目錄,以便我的項目模塊可以被定位。

如果你也有一個VIRTUAL_ENV環境中定義的,因爲你可以從我的VIRTUAL_ENV配置在uwsgi.ini文件中看到,該VIRTUAL_ENV目錄也包含在PYTHONPATHuwsgi過程。

運行我uwsgi過程中,它是如此的簡單運行此命令: -

uwsgi --ini /var/www/myproject/uwsgi.ini 

這將確保您所有的Python模塊(如您的urls.py)獲取您的uwsgi過程中正確加載。希望這可以幫助!

相關問題