Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

307
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

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 Denunciar

0

Además, actualizar Django resolvió mi problema.

En tu terminal,

 $ pip install -U Django

o ver aquí

over 4 years ago · Santiago Trujillo Denunciar

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda