SyntaxError: выражение генератора должно быть заключено в скобки

Я только что установил django и после установки создал проект django и пытался запустить сервер django командой:

python manage.py runserver

После этого я получаю сообщение об ошибке: SyntaxError: выражение генератора должно быть заключено в скобки

error screenshot

Ответы

Ответ 1

TL; DR Обновите Django до последней версии.


Эта ошибка является известной несовместимостью, связанной с проблемой Python # 32012. Проекты, основанные на Django 1.11.16 и ниже, вызовут это исключение при запуске с Python 3.7. Патч для этой проблемы был объединен с ветками Django 2.0 и 2.1, а также с Django 1.11.17.

Примечание: Python 3.7 официально поддерживается Django 1.11.17 и выше, включая любую ветку 2.x.

Ответ 2

Выражение генератора должно быть заключено в скобки

> Обновить версию Django до 1.11.17

pip install django==1.11.17

Ответ 3

Имел такой же вопрос. Вот как я перешел на django версии 2.0 и использовал python3

  • $ pip3 установить django == 2.0
  • $ python3 manage.py runningerver

Ответ 4

Просто откройте файл: venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py и заменить строки

related_url += '?' + '&'.join(
    '%s=%s' % (k, v) for k, v in params.items(),)

с

related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())

Ответ 5

Просто откройте файл venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py и замените строки

related_url += '?' + '&'.join(
    '%s=%s' % (k, v) for k, v in params.items(),
)

с

related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())