Je suis le tutoriel Django https://docs.djangoproject.com/es/1.10/intro/tutorial01/
J'ai créé un projet factice "mysite" (le tout premier) et j'ai essayé de le tester sans le modifier.
Django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
Je reçois une erreur de syntaxe sur un fichier généré par le système lui-même. Et je semble incapable de trouver quelqu'un d'autre qui a vécu le même problème.
J'ajouterai quelques données de ma configuration au cas où cela pourrait être utile
$ 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
Quelqu'un peut-il m'aider s'il vous plaît?
Mise à jour: ajout du contenu de manage.py généré automatiquement
cat manage.py
#!/usr/bin/env python3
import os
import sys
if __== "__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)
Assurez-vous avec quelle version de python vous connectez le Django avec.
Lorsque vous installez Django en utilisant simplement installer pip Django, vous devez exécuter python manage.py startapp sinon si vous avez utilisé pip3 Cliquez ici pour afficher un exemple de terminal install Django, puis exécutez python3 manage.py startapp
Vous pouvez essayer avec python3 manage.py runserver
. Cela fonctionne pour moi.
vous devez activer votre environnement virtuel. Dans le terminal -> source env/bin/activate Il y aura maintenant ----> (env) dans votre terminal!
maintenant cela fonctionnera -> serveur d'exécution.
Pas besoin de supprimer la partie exc!
J'éprouvais la même chose, mais cela a été résolu en utilisant python 3.6 spécifique, comme ci-dessous:
python3.6 manage.py runserver
C'est une solution simple en fait une que je viens de rencontrer. Avez-vous activé votre environnement virtuel?
Supprimez simplement cette partie from exec
pour avoir maintenant quelque chose comme:
if __== "__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)
Il est préférable de créer un environnement virtuel et d'exécuter votre code Django dans cet environnement virtuel, afin d'éviter de modifier vos environnements existants. Voici les étapes de base pour commencer avec l’environnement virtuel et Django.
Créer un nouveau répertoire et y insérer un cd.
mkdir test
, cd test
Installer et créer un environnement virtuel.
python3 -m pip install virtualenv
virtualenv venv -p python3
Activer l'environnement virtuel: source venv/bin/activate
Installez Django: pip install Django
Démarrer un nouveau projet: Django-admin startproject myproject
cd à votre projet et Run Project:
cd myproject
, python manage.py runserver
Vous pouvez voir votre projet ici: http://127.0.0.1:8000/
Vous devez activer l'environnement virtuel sur lequel vous avez installé Django . Exécutez ensuite cette commande -python manage.py runserver
Le didacticiel recommande également l’utilisation d’un environnement virtuel (voir la documentation de Django: https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release "). ceci avec pipenv --three
. Une fois que vous avez installé Django avec pipenv install Django
et activé votre environnement virtuel avec pipenv Shell
, python fera référence à python3 lors de l'exécution de python manage.py runserver
.
Documentation Pipenv: https://docs.pipenv.org/
Nous devons créer un environnement virtuel dans le projet, pas en dehors de celui-ci ...
Après avoir testé avec des instructions précises (en utilisant python2 ou python3 au lieu de "python"), je suis persuadé que peu importe ce que dit le tutoriel, cela ne fonctionne qu'avec python3.
Il semble que vous ayez plusieurs versions de Python sur votre ordinateur ..__ Essayez d’en supprimer une et laissez la seule version utilisée pour développer votre application.
Si besoin est, vous pouvez mettre à niveau votre version, mais assurez-vous de n'avoir qu'une seule version de Python sur votre ordinateur.
J'espère que ça aide.
Le fichier Django-admin est peut-être un fichier incorrect. J'ai rencontré le même problème que je n'ai pas trouvé sur un autre ordinateur avec le même processus de configuration.
Après avoir comparé deux projets, j’ai trouvé plusieurs différences entre manage.py et settings.py, puis j’ai réalisé que j’avais créé le projet 2.0 Django, mais que je l’exécutais avec python2.
runwhich Django-admin
in iterm
/Library/Frameworks/Python.framework/Versions/3.6/bin/Django-admin
On dirait que j'ai un administrateur Django en python3 dont je ne savais pas pourquoi. J'ai donc essayé d'obtenir le bon Django-amin.
pip show Django
alors j'ai
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
, j'ai trouvé le Django-admin
/Library/Python/2.7/site-packages/Django/bin/Django-admin.py
J'ai donc créé à nouveau le projet de
/Library/Python/2.7/site-packages/Django/bin/Django-admin.py startproject myproject
puis courir
cd myproject
python manage.py runserver
réussi????
juste vous décrivez votre version de python
=> serveur d'exécution python3.5 manage.py
(ma version python = 3.5)
J'ai résolu la même situation.
INSTALLED VERSION
python 3.6, Django 2.1
SITUATION
J'ai installé Node.js sous Windows 10. Après python manage.py runserver
une erreur est survenue.
ERROR
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
RAISON
Mon chemin python est passé de python-3.6 à python-2.7. (3.6 est correct dans mon PC.)
SOLUTION
Correction du chemin python.
J'ai eu exactement la même erreur, mais j'ai ensuite découvert par la suite que j'avais oublié d'activer l'environnement Conda dans lequel Django et les autres packages requis étaient installés.
Solution: créez un environnement virtuel ou conda avec Django installé, et activez-le avant d'utiliser la commande: $ python manage.py migrate
Il suffit de faire:
pipenv Shell
puis répétez:
python manage.py runserver
et ne supprimez pas from exc
comme suggéré ci-dessus.
à votre santé!
Qu'est-ce que je me demande, c'est que si Django est installé sur le conteneur, il se peut qu'il ne soit pas sur la machine hôte sur laquelle vous exécutez la commande. Ensuite, comment la commande sera-t-elle exécutée? Donc, depuis aucune des solutions ci-dessus a fonctionné pour moi.
J'ai découvert le conteneur en cours d'exécution et je suis entré dans celui-ci à l'aide de docker exec -it <container> bash
, puis j'ai exécuté la commande à l'intérieur du conteneur de menu fixe. Comme nous avons le conteneur volumé, les modifications apportées seront également prises en compte localement. Quelle que soit la commande à exécuter, elle peut être exécutée dans le conteneur en cours d'exécution.
J'ai atterri à la même exception car j'ai oublié d'activer l'environnement virtuel.
activer env par la commande suivante
source pathetoYourEnv/bin/activate
puis exécutez la commande
python manage.py runserver
J'ai eu le même problème et pouvais le résoudre. Cela est lié à la version de Django que vous avez installée, certaines d'entre elles ne sont pas supportées par python 2.7. Si vous avez installé Django avec pip, cela signifie que vous installez la dernière version de celle qui n'est probablement pas prise en charge par Python 2.7. Vous pouvez obtenir plus d'informations à ce sujet ici . Je suggérerais de python 3 ou de spécifier la version de Django lors de l’installation (qui est 1.11 pour python 2.7).
Pour les futurs lecteurs, Moi aussi j'ai eu le même problème. Ce problème a été causé par l’installation de Python directement à partir du site Web, ainsi que par une autre version d’Anaconda. Je devais désinstaller Python2.7 et ne garder que anaconda comme distribution unique.
Avez-vous entré dans l'environnement virtuel pour Django? Exécutez python -m venv myvenv
si vous n'êtes pas encore installé.
d'abord avec terminal cd dans le répertoire contenant manage.py
puis tapez $source <myvenv>/bin/activate
remplacez par votre nom d'environnement virtuel, sans angular _.
Un autre problème peut être que votre répertoire racine et venv ne correspondent pas. La structure devrait ressembler à ceci:
|-website
..facebook
..manage.py
..myvenv
..some other files
C'est votre environnement virtuel et manage.py devrait se trouver dans le même dossier. La solution à cela est de redémarrer le projet. Si vous faites face à cette erreur, vous ne devez encore rien coder, alors redémarrez.
Ce qui suit pourrait être les raisons possibles,
1. The virtual environment is not enabled
2. The virtual environment is enabled but the python version is different
Pour créer un environnement virtuel
$ virtualenv --python=python3 venv
Pour activer l'environnement virtuel
$ source venv/bin/activate
J'ai résolu ce problème pour désinstaller la version multiple de Python. Vérifiez Documentation officielle de Django pour la compatibilité Python.
Django 2.1 prend en charge Python 3.5, 3.6 et 3.7. Django 2.0 est la dernière version à prendre en charge Python 3.4. "
fichier manage.py
#!/usr/bin/env python
import os
import sys
if __== '__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 vous supprimez "de exc" de la dernière dernière ligne de ce code, une autre erreur sera générée en raison de plusieurs versions de Python.