web-dev-qa-db-fra.com

Comment résoudre SyntaxError sur le fichier manage.py généré automatiquement?

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)
32
Frank

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 

39
lobsang

Vous pouvez essayer avec python3 manage.py runserver. Cela fonctionne pour moi.

12
Fernando

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!

10
Aditya Sinha

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
7
Martin Karari

C'est une solution simple en fait une que je viens de rencontrer. Avez-vous activé votre environnement virtuel?

capture d'écran de mon terminal

5
Vipin Mohan

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)
4
Esir Kings

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.

  1. Créer un nouveau répertoire et y insérer un cd.

    mkdir test, cd test

  2. Installer et créer un environnement virtuel.

    python3 -m pip install virtualenv virtualenv venv -p python3

  3. Activer l'environnement virtuel: source venv/bin/activate

  4. Installez Django: pip install Django

  5. Démarrer un nouveau projet: Django-admin startproject myproject

  6. cd à votre projet et Run Project:

    cd myproject, python manage.py runserver

  7. Vous pouvez voir votre projet ici: http://127.0.0.1:8000/

3
Sbk3824

Vous devez activer l'environnement virtuel sur lequel vous avez installé Django . Exécutez ensuite cette commande -python manage.py runserver

2
Wasique Ansari

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/

1
David Weisiger

Nous devons créer un environnement virtuel dans le projet, pas en dehors de celui-ci ...

1
Shikha Mangal

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.

1
Frank

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.

1
HayWhy

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-adminin 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????

1
chie

juste vous décrivez votre version de python

=> serveur d'exécution python3.5 manage.py 

(ma version python = 3.5)

0
SAMARAT ADITYA

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.

0
Otsuki Takaya

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

0
SanjayThapa

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é!

0

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.

0
Tara Prasad Gurung

J'ai atterri à la même exception car j'ai oublié d'activer l'environnement virtuel.

0
Begueradj

activer env par la commande suivante

  source  pathetoYourEnv/bin/activate

puis exécutez la commande

python manage.py runserver
0
Vinod Ranga

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).

0
Keivan

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. 

0
Kshitij G

Avez-vous entré dans l'environnement virtuel pour Django? Exécutez python -m venv myvenv si vous n'êtes pas encore installé. 

0
tomilia

Vous devriez commencer votre environnement virtuel,

comment faire?

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.

0
rishabh jain

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
0
imbond

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.

"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.

0
Timma