2011-03-02 2 views
1

해당 설명서에 따라 dajax/dajaxice을 설치하려고합니다. 이는 settings.py에 달걀 템플릿 로더 (아래 튜플의 세 번째 항목)의 주석을 제거합니다. 내 개발 시스템에서 :django eggs template 로더 오류

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
    'django.template.loaders.eggs.Loader', 
) 

그러나,이 내 사이트는 "mod_wsgi에 의해 제한 sys.stdin 액세스 /에서 IO 오류"는 작업을 중지합니다. 오류가 발생한 곳을 볼 때,이 프로젝트에 연결되지 않은 Python 달걀에서 발생합니다 (나는 도움이 될 수있는 virtualenv를 사용하지 않습니다) (또는 심지어 장고), 다시 주석을 제거하면 사라집니다. (찾고있는 템플릿은 달걀 로더가 주석 처리 될 때 TEMPLATES_DIR에서 쉽게 찾을 수 있습니다).

역 추적은 다음과 같습니다

Environment: 

Request Method: GET 
Request URL: http://[redacted URL]/ 
Django Version: 1.2.5 
Python Version: 2.6.5 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.admin', 
'django.contrib.admindocs', 
'debug_toolbar', 
'registration', 
'dajaxice', 
'dajax', 
'south', 
'[redacted app name].study_registration', 
'profiles'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'debug_toolbar.middleware.DebugToolbarMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'audit_log.middleware.UserLoggingMiddleware') 



Traceback: 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/core/handlers/base.py" in get_response 
    100.      response = callback(request, *callback_args, **callback_kwargs) 
File "/home/[redacted user name]/django/[redacted app name]/study_registration/views.py" in menu 
    671.  template = loader.get_template('study_registration/menu.html') 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/template/loader.py" in get_template 
    157.  template, origin = find_template(template_name) 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/template/loader.py" in find_template 
    128.    loader = find_template_loader(loader_name) 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/template/loader.py" in find_template_loader 
    95.    mod = import_module(module) 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/utils/importlib.py" in import_module 
    35.  __import__(name) 
File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/django/template/loaders/eggs.py" in <module> 
    4.  from pkg_resources import resource_string 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in <module> 
    2675. add_activation_listener(lambda dist: dist.activate()) 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in subscribe 
    662.    callback(dist) 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in <lambda> 
    2675. add_activation_listener(lambda dist: dist.activate()) 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in activate 
    2180.    map(declare_namespace, self._get_metadata('namespace_packages.txt')) 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in declare_namespace 
    1784.    _handle_ns(packageName, path_item) 
File "/usr/lib/python2.6/dist-packages/pkg_resources.py" in _handle_ns 
    1755.   loader.load_module(packageName); module.__path__ = path 
File "/usr/lib/python2.6/pkgutil.py" in load_module 
    238.    mod = imp.load_module(fullname, self.file, self.filename, self.etc) 
File "/usr/local/lib/python2.6/dist-packages/glumpy-0.1.0-py2.6.egg/glumpy/__init__.py" in <module> 
    15. from window import Window, active_window 
File "/usr/local/lib/python2.6/dist-packages/glumpy-0.1.0-py2.6.egg/glumpy/window.py" in <module> 
    16. import IPython 
File "/usr/lib/pymodules/python2.6/IPython/__init__.py" in <module> 
    58.  __import__(name,glob,loc,[]) 
File "/usr/lib/pymodules/python2.6/IPython/ipstruct.py" in <module> 
    17. from IPython.genutils import list2dict2 
File "/usr/lib/pymodules/python2.6/IPython/genutils.py" in <module> 
    49. from IPython.Itpl import Itpl,itpl,printpl 
File "/usr/lib/pymodules/python2.6/IPython/Itpl.py" in <module> 
    99.  itpl_encoding = sys.stdin.encoding or 'ascii' 

Exception Type: IOError at/
Exception Value: sys.stdin access restricted by mod_wsgi 

내 질문은이 어쨌든 계란 템플릿 로더를 사용하지만 INSTALLED_APPS의 계란을 통해 확인? 차라리 virtualenv로 전환하지 않아도됩니다. 또한이 계란은 내 파이썬 경로에 나타납니다 :

['/usr/local/lib/python2.6/dist-packages/Unidecode-0.04.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/pygooglechart-0.3.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Graphy-1.0.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/virtualenv-1.5.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/glumpy-0.1.0-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_debug_toolbar-0.8.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Pympler-0.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_profiles-0.2-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_form_utils-0.1.8-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_audit_log-0.2.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/South-0.7.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_autocomplete-0.3.dev-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Babel-0.9.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/collective.ordereddict-0.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/ordereddict-1.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_ajax_selects-1.1.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/openpyxl-1.2.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_dynamic_choices-0.1.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode', '/usr/local/lib/python2.6/dist-packages', '/home/[redacted user name]/django', '/usr/lib/python2.6/site-packages/django/', '/home/[redacted user name]/django/[redacted app name]/', '/usr/lib/pymodules/python2.6/IPython/Extensions'] 

답변

2

mod_wsgi 3.3으로 업그레이드하십시오. mod_wsgi 2.X를 사용하지 마십시오. 읽기 : 짧은에서

http://blog.dscpl.com.au/2009/04/wsgi-and-printing-to-standard-output.html

을, 파이썬 코드 어딘가에 기술적으로 모든 WSGI 구현에 이식 사용할 수 없습니다 그 코드를 의미 sys.stdin를 사용하려고합니다. 오래된 mod_wsgi 버전은 이것을 사람들에게 이식성있는 코드 작성을 강요하기 위해 강조했습니다. 이러한 검사는 mod_wsgi 3.3에서 더 이상 수행되지 않으며 사람들이 이식성이없는 코드를 작성할 수 있습니다.

+0

나는 또한 같은 문제가 있지만 setuptools-0.6c11-py2.7.egg에서 오류가 발생합니다. – radztech