Django: python manage.py runningerver дает RuntimeError: максимальная глубина рекурсии превышена в cmp

Я пытаюсь изучить Django из 1-го урока на веб-сайте проекта Django. Я мог бы пропустить что-то очевидное, но после выполнения всех инструкций, когда я пришел, чтобы запустить команду

python manage.py runserver

Я получаю сообщение об ошибке, указанное в конце этой просьбы о помощи (для краткости я разместил только первые несколько строк повторяющихся строк сообщения об ошибке).

Вот некоторые из решений/предложений, которые я нашел в Интернете, но НЕ были полезны для меня.

1) sys.setrecursionlimit(1500).

Это не сработало для меня.

2). Django RuntimeError: максимальная глубина рекурсии превышена

Это также не вариант, потому что я не использую PyDeV, я пытался удалить и установить Django с помощью pip, он ничего не исправить, и я использую родной python Mountain Lion, который я не собираюсь удалять, так как он не рекомендуется.

3). Я также пробовал:

 python manage.py runserver --settings=mysite.settings

То же самое, что и команда без настроек параметров

Любые предложения, рекомендации будут высоко оценены. Я использую.... Официальная версия Django. 1.5.1, который я установил с помощью pip и Python 2.7.2

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x10f7ee5d0>>
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 92, in inner_run
    self.validate(display_num_errors=True)
  File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 280, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Python/2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 166, in get_app_errors
    self._populate()
  File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 72, in _populate
    self.load_app(app_name, True)
  File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Python/2.7/site-packages/django/contrib/auth/models.py", line 370, in <module>
    class AbstractUser(AbstractBaseUser, PermissionsMixin):
  File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 213, in __new__
    new_class.add_to_class(field.name, copy.deepcopy(field))
  File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 265, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py", line 257, in contribute_to_class
    cls._meta.add_field(self)
  File "/Library/Python/2.7/site-packages/django/db/models/options.py", line 179, in add_field
    self.local_fields.insert(bisect(self.local_fields, field), field)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: other < self),

  RuntimeError: maximum recursion depth exceeded in cmp

UPDATE: Итак, что я в конечном итоге сделал, это сделать переполненность установки виртуального бокса, установить на нем бесплатный ubuntu, а затем перейти к завершению учебника... ну ладно!

Ответы

Ответ 1

Проблема заключается в файле functools.py. Этот файл находится на Python. Я только что установил новую версию python 2.7.5, и этот файл неверен (у меня есть другая - более старая установка python 2.7.5, и там файл functools.py правильный)

Чтобы устранить проблему, замените это (о строке 56 в python\Lib\fuctools.py):

convert = {
    '__lt__': [('__gt__', lambda self, other: other < self),
               ('__le__', lambda self, other: not other < self),
               ('__ge__', lambda self, other: not self < other)],
    '__le__': [('__ge__', lambda self, other: other <= self),
               ('__lt__', lambda self, other: not other <= self),
               ('__gt__', lambda self, other: not self <= other)],
    '__gt__': [('__lt__', lambda self, other: other > self),
               ('__ge__', lambda self, other: not other > self),
               ('__le__', lambda self, other: not self > other)],
    '__ge__': [('__le__', lambda self, other: other >= self),
               ('__gt__', lambda self, other: not other >= self),
               ('__lt__', lambda self, other: not self >= other)]
}

:

convert = {
    '__lt__': [('__gt__', lambda self, other: not (self < other or self == other)),
               ('__le__', lambda self, other: self < other or self == other),
               ('__ge__', lambda self, other: not self < other)],
    '__le__': [('__ge__', lambda self, other: not self <= other or self == other),
               ('__lt__', lambda self, other: self <= other and not self == other),
               ('__gt__', lambda self, other: not self <= other)],
    '__gt__': [('__lt__', lambda self, other: not (self > other or self == other)),
               ('__ge__', lambda self, other: self > other or self == other),
               ('__le__', lambda self, other: not self > other)],
    '__ge__': [('__le__', lambda self, other: (not self >= other) or self == other),
               ('__gt__', lambda self, other: self >= other and not self == other),
               ('__lt__', lambda self, other: not self >= other)]
}

Читайте также: http://regebro.wordpress.com/2010/12/13/python-implementing-rich-comparison-the-correct-way/

Ответ 2

Вероятно, вы столкнулись с этой ошибкой: http://bugs.python.org/issue10042

То, что происходит, трудно сказать без отладки, я бы предположил, что одна из вещей, которые должны быть в поле, не в этой строке:

self.local_fields.insert(bisect(self.local_fields, field), field)

Ответ 3

У меня была эта проблема здесь, сегодня.

Мы также использовали django1.5.1 и python2.7.2.

Сначала мы установили django1.4, и он работал, но у проекта есть функции django1.5, поэтому это не общее решение.

Чтобы решить эту проблему, мы установили python2.7.5 и все получилось нормально!

Ответ 4

просто используйте это: python manage.py migrate