我無法讓我的CentOS 6/Apache/2.2.15上運行這個django應用程序。當我運行應用程序,我得到這個錯誤:TemplateSyntaxError:在呈現時捕獲ImportError:無法導入名稱utils
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 272, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 203, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 59, in technical_500_response
html = reporter.get_traceback_html()
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 151, in get_traceback_html
return t.render(c)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render
return self._render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render
bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 73, in render_node
result = node.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 90, in render
output = self.filter_expression.resolve(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 536, in resolve
new_obj = func(obj, *arg_vals)
File "/usr/local/lib/python2.7/site-packages/django/template/defaultfilters.py", line 695, in date
return format(value, arg)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 285, in format
return df.format(format_string)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 191, in r
return self.format('D, j M Y H:i:s O')
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 71, in force_unicode
s = unicode(s)
File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", line 206, in __unicode_cast
return self.__func(*self.__args, **self.__kw)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 81, in ugettext
return _trans.ugettext(message)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 286, in ugettext
return do_translate(message, 'ugettext')
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 276, in do_translate
_default = translation(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 185, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 3, in <module>
from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/util.py", line 1, in <module>
from django.db import models
File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 78, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 33, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 9, in <module>
from django.db import utils
TemplateSyntaxError: Caught ImportError while rendering: cannot import name utils
搜索這個錯誤我已經找到了幾個解決方案,嘗試了所有,但沒有工作:
- 製作WSGI運行在守護進程模式。
- 檢查Django安裝路徑是否在Python PAth中。
- 我認爲它可能是運行在同一個Apache VirtualHost上的另一個應用程序,所以我把另一個VH(另一個端口),但沒有工作。
- 我有2分貝連接:Oracle和PostgreSQL在這個應用程序,甲骨文是好的,也許問題是postgresql_psycopg2。我已經安裝好了。
這裏是我的文件:
vhost.conf:
NameVirtualHost 10.7.0.17:80
NameVirtualHost 10.7.0.17:8080
<VirtualHost 10.7.0.17:80>
ServerAdmin [email protected]
ServerName www.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/www.domain.com/html/
ErrorLog /var/www/www.domain.com/logs/error.log
CustomLog /var/www/www.domain.com/logs/access.log combined
WSGIDaemonProcess www.domain.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup www.domain.com
Alias /vlv/media/ /var/www/www.domain.com/django/vlv_vistoria/media/
WSGIScriptAlias /vlv /var/www/www.domain.com/django/vlv_vistoria/django.wsgi
<Directory /var/www/www.domain.com/django/vlv_vistoria>
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/www.domain.com/django/vlv_vistoria/media>
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost 10.7.0.17:8080>
ServerAdmin [email protected]
ServerName www.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/www.domain.com/html/
ErrorLog /var/www/www.domain.com/logs/sistema_error.log
CustomLog /var/www/www.domain.com/logs/sistema_access.log combined
WSGIDaemonProcess sistema.www.domain.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup sistema.www.domain.com
Alias /sistema/media/ /var/www/www.domain.com/django/sistema/media/
WSGIScriptAlias /sistema /var/www/www.domain.com/django/sistema/django.wsgi
<Directory /var/www/www.domain.com/django/sistema>
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
</Directory>
<Directory /var/www/www.domain.com/django/sistema/media>
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
django.wsgi
import os, sys
sys.path.append('/var/www/www.domain.com/django')
sys.path.append('/var/www/www.domain.com/django/sistema')
sys.path.append('/usr/local/lib/python2.7/site-packages/django')
root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)
os.path.dirname(__file__)
sys.path.insert(0, root)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
os.environ["ORACLE_HOME"] = "/ora00/app/oracle/product/client"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
提前任何幫助感謝。
剛剛檢查psycopg2,它導入OK。問題依然存在。 – lmisael
'sys.path.append('/ usr/local/lib/python2.7/site-packages/django')'是什麼原因?如果你想在'sys.path'中添加'django',你應該添加django所在的根文件夾(即'sys.path.append('/ usr/local/lib/python2.7/site-packages') ') – yedpodtrzitko
感謝您的建議,我會解決它。事實上,我只需要把它拿出來,因爲site-packages已經在PythonPath中了。 – lmisael