SyntaxError: выражение генератора должно быть parenthezised/python manage.py migrate

Я действительно новичок в программировании, и я хотел следовать учебнику Djangogirls, но теперь я застрял. В учебнике я здесь:

Чтобы создать базу данных для нашего блога, запустите в консоли следующее: python manage.py migrate (мы должны быть в каталоге djangogirls, который содержит файл manage.py). Если все будет хорошо, вы должны увидеть что-то вроде этого:...

В учебнике нет возможности провалиться, но у меня есть сообщение об ошибке:

(myvenv) C:\Users\Julcsi\djangogirls> python manage.py migrate
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\core\management\__init__.py", 
line 364, in execute_from_command_line
utility.execute()
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\core\management\__init__.py", 
line 338, in execute
django.setup()
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\__init__.py", 
line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\apps\registry.py", 
line 85, in populate
app_config = AppConfig.create(entry)
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\apps\config.py", 
line 94, in create
module = import_module(entry)
File "C:\Users\Julcsi\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py", 
line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 723, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_remove
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\contrib\admin\__init__.py", 
line 4, in <module>
from django.contrib.admin.filters import (
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\contrib\admin\filters.py", 
line 10, in <module>
from django.contrib.admin.options import IncorrectLookupParameters
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\contrib\admin\options.py", 
line 12, in <module>
from django.contrib.admin import helpers, widgets
File "C:\Users\Julcsi\djangogirls\myvenv\lib\site-packages\django\contrib\admin\widgets.py", 
line 152
'%s=%s' % (k, v) for k, v in params.items(),
SyntaxError: Generator expression must be parenthesized

Что я делаю неправильно? Что я должен делать?

У меня Python 3.7.0b1

Большое спасибо за помощь :)

Ответы

Ответ 1

Ты не делаешь ничего плохого; это проблема между Django и Python 3.7. У Django есть исправление, но это исправление еще не внесло его в новую версию.

Вы можете установить стабильную версию Python, Python 3.6, тем временем.

Ответ 2

Кроме того, обновление Django решило мою проблему

На вашем терминале

$ pip install -U Django

или посмотреть здесь

Ответ 4

Обучающая версия Django Girls на английском языке только что переключилась на Django 2.0, что должно сделать ее совместимой с Python 3.7. (Django 2.0 включает в себя резерв исправления, упомянутый в Ry-.)

Итак, все начинающие учебники теперь должны быть в порядке с Python 3.7.

Если вы уже начали учебное пособие, вам нужно будет начать снова в главе установки Django. Вы захотите сделать это в новом каталоге (удалить или переименовать текущий каталог djangogirls или выбрать другое имя для нового каталога) в качестве файлов, созданных

django-admin print startproject mysite .

зависит от используемой версии Django.

Ответ 5

Per Django FAQ, Django 1.11.x несовместим с Python 3.7.

Django 1.11.x завершил основную поддержку 2 декабря 2017 года и получает только потери данных и исправления безопасности до конца жизни.

Ответ 6

Как и все вышеперечисленные ответы, уже можно предположить, что между Django и Python существует несоответствие.
При создании виртуальной среды, пожалуйста, выполните следующую команду

python3.6 -m venv myenv

Он будет использовать Python3.6 при создании вашей виртуальной среды.
Теперь вы можете установить все зависимости в этой виртуальной среде.

Ответ 7

В Python 3.7 будет поддерживаться только Django == 2.2, поэтому обновление версии Django решит вашу проблему

pip3 установить django --upgrade