Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
SyntaxError: la expresión del generador debe estar entre paréntesis / python manage.py migrate

Soy realmente nuevo en programación y quería seguir el tutorial de Djangogirls, pero ahora estoy atascado. En el tutorial, estoy aquí :

Para crear una base de datos para nuestro blog, ejecutemos lo siguiente en la consola: python manage.py migrate (debemos estar en el directorio djangogirls que contiene el archivo manage.py). Si eso va bien, debería ver algo como esto: ...

No hay opción para fallar en el tutorial pero tengo un mensaje de error:

 (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

¿Qué estoy haciendo mal? ¿Qué tengo que hacer?

tengo python 3.7.0b1

Muchas gracias de antemano por la ayuda :)

over 4 years ago · Santiago Trujillo
9 answers
Answer question

0

No estás haciendo nada malo; este es un problema entre Django y Python 3.7. Django tiene una solución , pero esa solución aún no se ha convertido en una nueva versión.

Mientras tanto, puede instalar la versión estable de Python, Python 3.6.

over 4 years ago · Santiago Trujillo Report

0

La versión del tutorial de Django Girls en inglés acaba de cambiar a Django 2.0 , lo que debería hacerlo compatible con Python 3.7. (Django 2.0 incluye un backport de la solución mencionada en la respuesta de Ry ).

Entonces, todos los que comiencen el tutorial ahora deberían estar bien con Python 3.7.

Si ya ha comenzado el tutorial, deberá comenzar de nuevo en el capítulo de instalación de Django . Querrá hacer eso en un nuevo directorio (ya sea eliminar o cambiar el nombre de su directorio djangogirls actual o elegir un nombre diferente para el nuevo directorio) como los archivos generados por

 django-admin print startproject mysite .

depende de la versión de Django en uso.

over 4 years ago · Santiago Trujillo Report

0

Según las preguntas frecuentes de Django, Django 1.11.x no es compatible con Python 3.7.

Django 1.11.x llegó al final del soporte principal el 2 de diciembre de 2017 y solo recibe correcciones de seguridad y pérdida de datos hasta el final de su vida útil.

over 4 years ago · Santiago Trujillo Report

0

Como todas las respuestas anteriores ya sugieren que hay una falta de coincidencia entre la versión de Django y Python.
Al crear un entorno virtual, ejecute el siguiente comando

 python3.6 -m venv myenv

Utilizará Python3.6 mientras crea su entorno virtual.
Ahora puede instalar todas las dependencias en este entorno virtual.

over 4 years ago · Santiago Trujillo Report

0

Esta es una incompatibilidad conocida entre Django y Python 3.7. Ya se ha fusionado una solución en las ramas de Django 2.x y se ha adaptado a la rama 1.11 .

Para resolver este problema, simplemente actualice Django al menos a la versión 1.11.17 (o 2.x) o puede degradar Python a la versión 3.6.

over 4 years ago · Santiago Trujillo Report

0

Además, actualizar Django resolvió mi problema.

En tu terminal,

 $ pip install -U Django

o ver aquí

over 4 years ago · Santiago Trujillo Report

0

Solo Django == 2.2 será compatible con Python 3.7, por lo que actualizar su versión de Django resolverá su problema

 pip3 install django --upgrade
over 4 years ago · Santiago Trujillo Report

0

Siga los pasos mencionados a continuación para solucionar el problema:

  • Mover al directorio donde ha instalado el virtualenv
  • Encontrará un directorio llamado lib. Dentro de ese directorio, encontrará un directorio llamado pythonx.y donde xy es la versión de python que está usando
  • Ahora, vaya a site-packages
  • Luego ve al directorio django
  • Mover al directorio de contrib
  • Ahora, vaya al directorio de admin . Aquí es donde encontraría un archivo python widgets.py
  • Encuentre el siguiente fragmento de código en ese archivo
 if params: related_url += '?' + '&amp;'.join( related_url += '?' + '&amp;'.join('%s=%s' % (k, v) for k, v in params.items()) '%s=%s' % (k, v) for k, v in params.items(), )

Necesitas cambiar eso a lo siguiente

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

Guarde los cambios y ejecute la migración nuevamente.

over 4 years ago · Santiago Trujillo Report

0

Resolví este problema al actualizar Django a Dajngo==1.11.29 , la última versión de Dajngo 1.11. Creo que mi versión de Python era 3.8.x. Pruébelo si no planea actualizar a Django 2.x o 3.x

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!