51 votes

SyntaxError: L'expression du générateur doit être parenthezised / python manage.py migrer

Je suis vraiment nouveau dans la programmation et j'ai voulu suivre le Djangogirls tutoriel, mais je suis coincé maintenant. Dans le tutoriel, je suis ici:

Pour créer une base de données pour notre blog, nous allons exécuter la ligne suivante dans la console: python manage.py migrer (nous avons besoin d'être dans le djangogirls répertoire qui contient le manage.py fichier). Si tout va bien, vous devriez voir quelque chose comme ceci: ...

Il n'y a pas d'option pour échouer dans le tuto mais j'ai un message d'erreur:

(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

Ce que je fais mal? Que dois-je faire?

J'ai Python 3.7.0b1

Merci beaucoup d'avance pour l'aide :)

75voto

minitech Points 87225

Vous ne faites rien de mal; c'est un problème entre Django et Python 3.7. Django a un correctif, mais ce correctif n'a pas fait dans une nouvelle version encore.

Vous pouvez installer la version stable de Python, Python 3.6, en attendant.

16voto

Antwane Points 7923

C'est une incompatibilité connue entre Django et Python 3.7. Un correctif a déjà été fusionnées dans Django 2.x branches et réactualisés en 1.11 branche.

Pour résoudre ce problème, il suffit de mettre à jour Django au moins la version 1.11.17 (ou les 2.x) ou vous pouvez revenir en Python à la version 3.6.

13voto

Chiharu Miyoshi Points 103

En outre, la mise à niveau Django résolu mon problème

Sur votre terminal,

ou voir ici

3voto

Seul Django 2,2 sera pris en charge par Python 3.7 afin que la mise à niveau de votre version Django résoudra votre problème

2voto

Borun Points 21

Le Django Filles tutoriel de la version en anglais a tout juste de passer à Django 2.0 qui devrait le rendre compatible avec Python 3.7. (Django 2.0 inclut un rétroportage de le correctif mentionné dans Ry-'s réponse.)

Donc tout le monde de commencer le tutoriel devrait être bien avec Python 3.7.

Si vous avez déjà commencé le tutoriel que vous auriez à commencer de nouveau à la Django d'installation chapitre. Vous aurez envie de le faire dans un nouveau répertoire (soit de supprimer ou de renommer votre djangogirls de répertoire ou de choisir un autre nom pour le nouveau répertoire) que les fichiers générés par

django-admin print startproject mysite .

dépendent de la version de Django en cours d'utilisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X