Ответ 1
Ты не делаешь ничего плохого; это проблема между Django и Python 3.7. У Django есть исправление, но это исправление еще не внесло его в новую версию.
Вы можете установить стабильную версию Python, Python 3.6, тем временем.
Я действительно новичок в программировании, и я хотел следовать учебнику 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
Большое спасибо за помощь :)
Ты не делаешь ничего плохого; это проблема между Django и Python 3.7. У Django есть исправление, но это исправление еще не внесло его в новую версию.
Вы можете установить стабильную версию Python, Python 3.6, тем временем.
Кроме того, обновление Django решило мою проблему
На вашем терминале
$ pip install -U Django
или посмотреть здесь
Это известная несовместимость между Django и Python 3.7. Исправление уже объединено с ветками Django 2.x и перенесено в ветку 1.11.
Чтобы решить эту проблему, просто обновите Django как минимум до версии 1.11.17 (или 2.x) или вы можете понизить Python до версии 3.6.
Обучающая версия Django Girls на английском языке только что переключилась на Django 2.0, что должно сделать ее совместимой с Python 3.7. (Django 2.0 включает в себя резерв исправления, упомянутый в Ry-.)
Итак, все начинающие учебники теперь должны быть в порядке с Python 3.7.
Если вы уже начали учебное пособие, вам нужно будет начать снова в главе установки Django. Вы захотите сделать это в новом каталоге (удалить или переименовать текущий каталог djangogirls
или выбрать другое имя для нового каталога) в качестве файлов, созданных
django-admin print startproject mysite .
зависит от используемой версии Django.
Per Django FAQ, Django 1.11.x несовместим с Python 3.7.
Django 1.11.x завершил основную поддержку 2 декабря 2017 года и получает только потери данных и исправления безопасности до конца жизни.
Как и все вышеперечисленные ответы, уже можно предположить, что между Django и Python существует несоответствие.
При создании виртуальной среды, пожалуйста, выполните следующую команду
python3.6 -m venv myenv
Он будет использовать Python3.6 при создании вашей виртуальной среды.
Теперь вы можете установить все зависимости в этой виртуальной среде.
В Python 3.7 будет поддерживаться только Django == 2.2, поэтому обновление версии Django решит вашу проблему
pip3 установить django --upgrade