2012-12-22 84 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过程中正确加载。希望这可以帮助!

相关问题