[英]“ImportError: No module named urls” occurs in Django admin
的Django:1.3.5
nginx:1.2.6
uwsgi:1.0.5
我的django應用在nginx和uwsgi上運行。 打開管理頁面時,發生500錯誤。 此錯誤是“ ImportError:沒有名為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',
)
您如何開始您的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
環境(如uwsgi.ini
文件中的VIRTUAL_ENV
配置所示),則VIRTUAL_ENV
目錄也包含在uwsgi
進程的PYTHONPATH
中。
要運行我的uwsgi進程,就和運行此命令一樣簡單:
uwsgi --ini /var/www/myproject/uwsgi.ini
這樣可以確保uwsgi進程正確加載了所有python模塊(例如urls.py
)。 希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.