¿Cómo resolver SyntaxError en manage.py generado automáticamente?

Estoy siguiendo el tutorial de Django https://docs.djangoproject.com/es/1.10/intro/tutorial01/

He creado un proyecto ficticio “mi sitio” (el primero) y trato de probarlo sin alterarlo.

django-admin startproject mysite cd mysite python manage.py runserver File "manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax 

Obtengo un SyntaxError en un archivo generado por el propio sistema. Y parece que no puedo encontrar a nadie más que haya pasado por el mismo problema.

Agregaré algunos datos de mi configuración en caso de que sea de utilidad.

 $ vpython --version Python 2.7.12 $ pip --version pip 9.0.1 from /home/frank/.local/lib/python2.7/site-packages (python 2.7) $ python -m django --version 1.10.6 

¿Puede alguien ayudarme por favor?

Actualización: agregando contenidos de manage.py autogenerado

 cat manage.py #!/usr/bin/env python3 import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) 

Asegúrate de con qué versión de python conectas el django.

Cuando instale django usando solo pip install django, entonces tiene que ejecutar python manage.py startapp. De lo contrario, si usa pip3. Haga clic aquí para ver el ejemplo de instalación de terminal de django, luego tiene que ejecutar python3 manage.py startapp.

Puedes probar con python3 manage.py runserver . Esto funciona para mi.

Debes activar tu entorno virtual. En la terminal -> fuente env / bin / active ahora se mostrará —-> (env) en su terminal.

ahora funcionará -> runserver.

No es necesario borrar la parte exc!

Estaba experimentando lo mismo, pero esto se resolvió ejecutando con Python 3.6 específico de la siguiente manera:

 python3.6 manage.py runserver 

Después de realizar pruebas con instrucciones precisas (usando python2 o python3 en lugar de solo “python”) he constatado que no importa lo que diga el tutorial, esto funciona SOLAMENTE con python3.

Es una solución simple que acabo de encontrar. ¿Activaste tu entorno virtual?

mi terminal captura de pantalla

Solo borra eso from exec parte from exec para tener algo como

 if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) execute_from_command_line(sys.argv) 

Es mejor crear un entorno virtual y ejecutar su código Django dentro de este entorno virtual, esto ayuda a no cambiar sus entornos existentes. Estos son los pasos básicos para comenzar con el entorno virtual y Django.

  1. Crea un nuevo directorio y cd en él.

    mkdir test , cd test

  2. Instalar y crear un entorno virtual.

    python3 -m pip install virtualenv virtualenv venv -p python3

  3. Activar entorno virtual: source venv/bin/activate

  4. Instala Django: pip install django

  5. Iniciar un nuevo proyecto: django-admin startproject myproject

  6. cd a tu proyecto y Ejecutar Proyecto:

    cd myproject , python manage.py runserver

  7. Puedes ver tu proyecto aquí: http://127.0.0.1:8000/

Debes activar el entorno virtual donde tengas instalado django. Luego ejecuta este comando – python manage.py runserver

Además, el tutorial recomienda que se use un entorno virtual (consulte la documentación de Django: https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release “). Puede hacer esto con pipenv --three Una vez que haya instalado django con pipenv install django y active su entorno virtual con pipenv shell , python hará referencia a python3 cuando ejecute python manage.py runserver .

Documentación de Pipenv: https://docs.pipenv.org/

El django-admin tal vez el archivo incorrecto. Encontré el mismo problema que no encontré en una computadora diferente con el mismo flujo de configuración.

Después de comparar dos proyectos, encontré varias diferencias en manage.py y settings.py, luego me di cuenta de que creé el proyecto 2.0 django pero lo ejecuté con python2.

ejecutar which django-admin en iterm

 /Library/Frameworks/Python.framework/Versions/3.6/bin/django-admin 

Parece que tengo un django-admin en python3 que no sabía por qué. Así que intenté obtener el django-amin correcto.

 pip show django 

entonces tengo

 Name: Django Version: 1.11a1 Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design. Home-page: https://www.djangoproject.com/ Author: Django Software Foundation Author-email: foundation@djangoproject.com License: BSD Location: /Library/Python/2.7/site-packages Requires: pytz 

En /Library/Python/2.7/site-packages , encontré el django-admin

 /Library/Python/2.7/site-packages/django/bin/django-admin.py 

Así que creé el proyecto de nuevo por

 /Library/Python/2.7/site-packages/django/bin/django-admin.py startproject myproject 

entonces corre

 cd myproject python manage.py runserver 

tenido éxito

Tenemos que crear un entorno virtual dentro del proyecto, no fuera del proyecto. Luego se resolverá.

Parece que tienes más de una versión de Python en tu computadora. Pruebe y elimine una y deje la única versión que utilizó para desarrollar su aplicación.

Si es necesario, puede actualizar su versión, pero asegúrese de tener solo una versión de Python en su computadora.

Espero que esto ayude.

Lo que me pregunto es que, aunque el django está instalado en el contenedor, puede que no esté en la máquina host donde está ejecutando el comando. Entonces, ¿cómo se ejecutará el comando. Así que ya que ninguna de las soluciones anteriores funcionó para mí.

Descubrí el contenedor en ejecución y me metí en el contenedor en ejecución utilizando docker exec -it bash luego ejecuté el comando dentro del contenedor de docker. Como tenemos el contenedor volumétrico, los cambios realizados también se reflejarán localmente. Cualquier comando que se ejecute se puede ejecutar dentro del contenedor en ejecución

Para futuros lectores, yo también tuve el mismo problema. Resulta que la instalación de Python directamente desde el sitio web, además de tener otra versión de Anaconda causó este problema. Tuve que desinstalar Python2.7 y solo mantener anaconda como la única distribución.

¿Has entrado en el entorno virtual para django? Ejecute python -m venv myvenv si aún no lo ha instalado.

Solo haz:

pipenv shell

luego repita:

python manage.py runserver

y no borres from exc como se sugirió anteriormente.

¡aclamaciones!

Tuve el mismo problema y pude resolverlo. Está relacionado con la versión de Django que instaló, algunas de ellas no son compatibles con Python 2.7. Si ha instalado Django con pip, significa que está instalando la última versión de la que probablemente no es compatible con Python 2.7. Puede obtener más información al respecto aquí . Yo sugeriría a python 3 o especificar la versión de Django durante la instalación (que es 1.11 para python 2.7).

solo describes tu versión de python

=> python3.5 manage.py runserver

(Mi versión de python = 3.5)

Resolví este problema para desinstalar la versión múltiple de Python. Consulte la documentación oficial de Django para la compatibilidad con Python.

Compatibilidad con Python

Django 2.1 admite Python 3.5, 3.6 y 3.7. Django 2.0 es la última versión compatible con Python 3.4 “.

archivo manage.py

 #!/usr/bin/env python import os import sys if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'work.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH environment variable? Did you " "forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) 

Si la eliminación “de exc” de la segunda última línea de este código generará otro error debido a las múltiples versiones de Python.

activar env por el siguiente comando

  source pathetoYourEnv/bin/activate 

luego ejecuta el comando

 python manage.py runserver 

Resolví la misma situación.

VERSION INSTALADA

Python 3.6, Django 2.1

SITUACIÓN

Instalé Node.js en Windows 10. Después de python manage.py runserver provocó un error.

ERROR

 File "manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax 

RAZÓN

Mi ruta de acceso a python cambió a python-2.7 desde python-3.6. (3.6 es correcto en mi PC.)

SOLUCIÓN

Arreglar la ruta de python.

Debes comenzar tu entorno virtual ,

¿cómo hacerlo?

primero con cd terminal en el directorio que contiene manage.py

a continuación, escriba $source /bin/activate reemplace con su nombre de entorno virtual, sin corchetes angulares.

Otro problema puede ser que su directorio raíz y venv no coinciden. La estructura debería ser algo como esto:

 |-website ..facebook ..manage.py ..myvenv ..some other files 

Ese es su entorno virtual y manage.py debería estar en la misma carpeta. La solución a eso es reiniciar el proyecto. Si se enfrenta a este error, no debe haber codificado nada todavía, así que reinicie.