J'essaie d'exécuter python manage.py runserver
sur une application Django que j'ai et j'obtiens cette erreur:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from Django.core.management import execute_from_command_line
ImportError: No module named Django.core.management
Voici la sortie de pip freeze | grep -i Django
pour montrer que Django est effectivement installé:
Django==1.6.5
Django-cached-authentication-middleware==0.2.0
Django-cors-headers==1.1.0
Django-htmlmin==0.7.0
Django-static-precompiler==0.9
djangorestframework==2.3.14
En outre, essayer d'exécuter /usr/local/bin/python2.7 manage.py runserver
génère la même erreur.
Pour résoudre mon problème, j'ai utilisé la ligne suivante dans mon fichier .z:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
J'essayais d'importer Django et il n'a pas pu être trouvé, et le problème ci-dessus a résolu le problème.
Problèmes possibles pouvant causer votre problème:
PYTHONPATH n'est pas bien configuré. Pour le configurer, vous devriez faire:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
Vous avez oublié la ligne #!/usr/bin/env python
au début de manage.py
Si vous travaillez sur virtualenv, vous avez oublié d'activer env virtuel pour exécuter les commandes manage.py (vous avez peut-être installé Django sur votre système mais pas sur votre virtualenv)
source path/to/your/virtualenv/bin/activate
ou
workon env_name
Vous avez Python 2.7 et Python 3.4 jouer avec le paquet
Vous utilisez un très vieux Python 2.4 et vous devriez dire au système d’utiliser votre Python 2.7 avec:
alias python=python2.7
Parfois, la réinstallation/mise à niveau de Django corrige certains de ces problèmes.
Vous voudrez peut-être exécuter
python -c "import Django; print(Django.get_version())"
pour vérifier si Django est installé sur votre PC ou votre virtualenv si vous en utilisez un
Vous pouvez trouver d'autres solutions dans d'autres questions similaires:
J'ai résolu cette même erreur en exécutant la commande ci-dessous:
python3.4 manage.py runserver
Et la commande ci-dessus a été exécutée avec succès pour moi. Donc, ce que vous pouvez essayer, c’est que si vous utilisez Python 2.7, remplacez simplement 3.4 par 2.7. J'espère que cela t'aides.
Si vous utilisez virtualenv
et exécutez manage.py runserver
dans le système Windows, cmd utilisera le python du système, et non le python de virtualenv. Parce que si vous installez python
dans le système, cmd utilisera automatiquement python
celle installée dans le système, pas le python dans virtualenv
. Donc, si vous utilisez virtualenv
dans Windows. tu as besoin de courir
>python .\manage.py runserver
Je suis tombé sur le même problème en effectuant toute la configuration et en exécutant Django avec Python3, mais en lançant la commande suivante:
$ python manage.py migrate
résolu le problème en utilisant une version cohérente de Python:
$ python3 manage.py migrate
Operations to perform:
Apply all migrations: sessions, auth, admin, contenttypes
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying sessions.0001_initial... OK
Les autres commandes que j'ai exécutées auparavant sont:
python3 -m pip install Django
django-admin startproject learning_site
python3 manage.py runserver 0.0.0.0:8000
Le problème direct est que le paquet Django est manquant. Pour moi, alors que j'exécutais Django dans virtualenv, ce problème se produit lorsque je renomme mon répertoire de travail.
Réinstaller le fichier env a fonctionné pour moi.
Cette erreur est due à l'environnement de l'utilisateur. En effet, je viens d'ajouter le chemin bin de l'environnement virtuel à PATH et le problème a été résolu.
PATH=/bin/of_virtualenvironment/:$PATH
dans le répertoire où se trouve votre fichier Django, vérifiez la première ligne de Django-admin.py:
#!/usr/bin/env python
Si vous utilisez python 3+, python
ici peut désigner python2 ici. Vérifiez donc avec quel python vous installez Django.
ls -l $(which -a python3)
Si vous avez python3 installé et non lié en tant que python
, modifiez la première ligne Shebang en
#!/usr/bin/env python3
Correction du même problème dans mon projet en utilisant seulement;
pip install -r requirements.txt
Je n'avais rien à faire d'autre. Quand j'ai ran./manage.py runserver
tout a fonctionné!
J'ai découvert que je pouvais importer le module Django à partir de l'interpréteur python, mais Django-admin.py ne pouvait pas l'importer lorsqu'il était exécuté à partir de la ligne de commande.
J'ai confirmé que j'utilisais l'interpréteur python dans mon environnement virtuel.
J'utilisais une version 64 bits de python. La désinstallation et l'installation de la version 32 bits, puis la recréation de mon fichier venv ont résolu ce problème.
Assurez-vous également que vous n'avez pas endommagé votre .bashrc
avec alias
es . Vous obtiendrez ce genre d'erreur si .bashrc
contient quelque chose comme alias python="/usr/bin/python3"
.