python - barplot - ¿Cómo resolver SyntaxError en manage.py autogenerado?
pandas plot (26)
Estoy siguiendo el tutorial de Django https://docs.djangoproject.com/es/1.10/intro/tutorial01/
He creado un proyecto ficticio "mysite" (el primero) e intento probarlo sin alterarlo.
django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
Recibo 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 pueda ser útil
$ 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
¿Alguien puede ayudarme?
Actualización: agregar contenido 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)
Debes comenzar tu entorno virtual ,
¿cómo hacerlo?
primero con terminal cd en el directorio que contiene manage.py
a continuación, escriba
$source <myvenv>/bin/activate
reemplazar 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 esto es reiniciar el proyecto. Si se enfrenta a este error, aún no debe haber codificado nada, así que reinicie.
¿Has entrado en el entorno virtual para django?
Ejecute
python -m venv myvenv
si aún no lo ha instalado.
Además, el tutorial recomienda que se utilice un entorno virtual (consulte la documentación de Django:
https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release
"). Puede hacerlo con
pipenv --three
. Una vez que haya instalado django con
pipenv install django
y active su entorno virtual con
pipenv shell
, python se referirá a python3 cuando ejecute
python manage.py runserver
.
Documentación de Pipenv: https://docs.pipenv.org/
Asegúrese de con qué versión de Python conecta el django.
Cuando instala django usando solo pip install django, entonces debe ejecutar python manage.py startapp, de lo contrario, si usó pip3 Haga clic aquí para ver el ejemplo de instalación de django, entonces debe ejecutar python3 manage.py startapp
Aterricé en la misma excepción exacta porque olvidé activar el entorno virtual.
Debe activar el entorno virtual donde ha instalado django. Luego ejecute este comando - python manage.py runserver
Después de probar con instrucciones precisas (usando python2 o python3 en lugar de solo "python") he constatado que no importa lo que diga el tutorial, esto funciona SOLO con python3.
El django-admin puede ser el archivo incorrecto. Encontré el mismo problema que no encontré en una computadora diferente, 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 obtuve un django-admin en python3 y 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: [email protected]
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 nuevamente por
/Library/Python/2.7/site-packages/django/bin/django-admin.py startproject myproject
entonces corre
cd myproject
python manage.py runserver
triunfado🎉
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.
-
Cree un nuevo directorio y cd en él.
mkdir test
,cd test
-
Instalar y crear un entorno virtual.
python3 -m pip install virtualenv virtualenv venv -p python3
-
Activar entorno virtual:
source venv/bin/activate
-
Instalar Django:
pip install django
-
Inicie un nuevo proyecto:
django-admin startproject myproject
-
cd a su proyecto y ejecutar proyecto:
cd myproject
,python manage.py runserver
-
Puede ver su proyecto aquí:
http://127.0.0.1:8000/
Es una solución simple, en realidad una que acabo de encontrar. ¿Activaste tu entorno virtual?
Estaba experimentando lo mismo, pero esto se resolvió ejecutando Python 3.6 específico de la siguiente manera:
python3.6 manage.py runserver
Las siguientes podrían ser las posibles razones,
1. The virtual environment is not enabled
2. The virtual environment is enabled but the python version is different
Para crear un entorno virtual
$ virtualenv --python=python3 venv
Para activar el entorno virtual.
$ source venv/bin/activate
Lo que me pregunto es que aunque el django está instalado en el contenedor, es posible que no esté en la máquina host donde está ejecutando el comando. Entonces, ¿cómo se ejecutará el comando? Entonces, dado que ninguna de las soluciones anteriores funcionó para mí.
Descubrí el contenedor en ejecución y me metí en el contenedor en ejecución usando
docker exec -it <container> bash
luego ejecuté el comando dentro del contenedor de docker.
Como tenemos el contenedor con volumen, los cambios realizados también se reflejarán localmente.
Cualquier comando que se ejecute puede ejecutarse dentro del contenedor en ejecución
Para futuros lectores, yo también tuve el mismo problema. Resulta que instalar Python directamente desde el sitio web y tener otra versión de Anaconda causó este problema. Tuve que desinstalar Python2.7 y solo mantener anaconda como única distribución.
Parece que tienes más de una versión de Python en tu computadora. Intente eliminar 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.
Puedes probar con
python3 manage.py runserver
.
Esto funciona para mi.
Resolví este problema para desinstalar la versión múltiple de Python. Consulte la documentación oficial de Django para ver la compatibilidad con Python.
" Compatibilidad con Python
Django 2.1 es compatible con Python 3.5, 3.6 y 3.7. Django 2.0 es la última versión que admite 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 eliminar "de exc" de la segunda última línea de este código generará otro error debido a múltiples versiones de Python.
Resolví la misma situación.
VERSIÓN INSTALADA
Python 3.6, Django 2.1
SITUACIÓN
Instalé Node.js en Windows 10. Después de que
python manage.py runserver
causara un error.
ERROR
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
RAZÓN
Mi ruta de Python cambió a python-2.7 de python-3.6. (3.6 es correcto en mi PC).
SOLUCIÓN
Repara la ruta de Python.
Simplemente elimine eso
from exec
parte
from exec
para tener ahora 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)
Solo haz:
pipenv shell
luego repita:
python manage.py runserver
y no elimine
from exc
como se sugirió anteriormente.
¡aclamaciones!
Tenemos que crear un entorno virtual dentro del proyecto, no fuera del proyecto. Luego se resolverá.
Tuve el mismo problema y pude resolverlo. Está relacionado con la versión de Django que ha instalado, algunos de ellos 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 sea compatible con python 2.7, puede obtener más información al respecto here . Sugeriría a Python 3 o especificar la versión de Django durante la instalación (que es 1.11 para Python 2.7).
Tuve exactamente el mismo error, pero luego descubrí que me olvidé de activar el entorno conda que tenía instalados django y otros paquetes necesarios.
Solución: cree un entorno virtual o conda con django instalado y
$ python manage.py migrate
antes de utilizar el comando:
$ python manage.py migrate
activar env mediante el siguiente comando
source pathetoYourEnv/bin/activate
luego ejecuta el comando
python manage.py runserver
debes activar tu entorno virtual. En la terminal -> source env / bin / enable ahora habrá ----> (env) en tu terminal.
ahora funcionará -> runserver.
No es necesario eliminar la parte exc!
solo describes tu versión de Python
=> python3.5 manage.py runserver
(mi versión de python = 3.5)