NameError для встроенных функций Python в Django при работе с uWSGI - PullRequest
2 голосов
/ 10 августа 2011

Я использую Django 1.3 + Python 2.6 в Ubuntu 10.10 (64-битная версия) с uWSGI (0.9.8). Тем не менее, иногда я могу найти некоторые странные журналы в uwsgi.log, сообщающие, что «getattr», «isinstance» не определены. Но не являются ли они встроенными функциями Python? Почему Джанго не может их найти? Это случается не часто, когда трафик низок, когда сервер uwsgi перезапускается, и появляется очень часто, когда трафик велик и сервер работает недолго.

Я уверен, что в моем приложении django нет ничего плохого, но я не уверен, является ли это ошибкой в ​​Django, uWSGI или даже в Python 2.6.

ОБНОВЛЕНИЕ: последняя версия uWSGI, похоже, не имеет этого снова.

Подробный журнал:

Error in sys.excepthook:
 Traceback (most recent call last):
   File "/usr/lib/python2.6/dist-packages/apport_python_hook.py", line 48,  in apport_excepthook
     if not enabled():
   File "/usr/lib/python2.6/dist-packages/apport_python_hook.py", line 24,  in enabled
     return re.search('^\s*enabled\s*=\s*0\s*$', conf, re.M) is None
   File "/usr/lib/python2.6/re.py", line 142, in search
     return _compile(pattern, flags).search(string)
   File "/usr/lib/python2.6/re.py", line 236, in _compile
     if isinstance(pattern, _pattern_type):
 NameError: global name 'isinstance' is not defined

 Original exception was:
 Traceback (most recent call last):
   File "/usr/local/lib/python2.6/dist-
 packages/django/core/handlers/wsgi.py", line 258, in __call__
     set_script_prefix(base.get_script_name(environ))
   File "/usr/local/lib/python2.6/dist-
 packages/django/core/handlers/base.py", line 239, in get_script_name
     if settings.FORCE_SCRIPT_NAME is not None:
   File "/usr/local/lib/python2.6/dist-
 packages/django/utils/functional.py", line 277, in __getattr__
     return getattr(self._wrapped, name)
 NameError: global name 'getattr' is not defined  Traceback (most recent call last):
   File "/usr/local/lib/python2.6/dist-
 packages/django/core/handlers/wsgi.py", line 258, in __call__
     set_script_prefix(base.get_script_name(environ))
   File "/usr/local/lib/python2.6/dist-
 packages/django/core/handlers/base.py", line 252, in get_script_name
     return force_unicode(environ.get('SCRIPT_NAME', u''))
   File "/usr/local/lib/python2.6/dist-packages/django/utils/encoding.py",
 line 64, in force_unicode
     if isinstance(s, unicode):
 NameError: global name 'isinstance' is not defined  Error in sys.excepthook:
 Traceback (most recent call last):
   File "/usr/lib/python2.6/dist-packages/apport_python_hook.py", line 48,  in apport_excepthook
     if not enabled():
   File "/usr/lib/python2.6/dist-packages/apport_python_hook.py", line 24,  in enabled
     return re.search('^\s*enabled\s*=\s*0\s*$', conf, re.M) is None
   File "/usr/lib/python2.6/re.py", line 142, in search
     return _compile(pattern, flags).search(string)
   File "/usr/lib/python2.6/re.py", line 236, in _compile
     if isinstance(pattern, _pattern_type):
 NameError: global name 'isinstance' is not defined

1 Ответ

1 голос
/ 16 августа 2011

Можете ли вы попробовать последний совет? Похоже, ошибка подсчета ссылок должна быть исправлена ​​в 0.9.9-dev

Если вы можете подтвердить, что это решает вашу проблему, я выпущу обновленную версию с применением только этого исправления.

Большое спасибо за доклад

...