Django - "kein Modul namens django.core.management"

104

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, Django über die Befehlszeile auszuführen.

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

Irgendwelche Ideen, wie man das löst?

Krasimir
quelle
Was genau versuchst du auszuführen, welche Version von Python, Version von Django usw.?
Jon Clements
Die Version meines lokalen Hosts ist Python 2.6.6 und 1.4.3 Dyango. Python Server ist 2.6.6 und für Dyango kann nicht überprüft werden, ob Sie wissen, wie zu überprüfen?
Krasimir
Ich habe diesen Fehler zufällig beim Versuch, Migrationen durchzuführen, erhalten und war in meiner virtuellen Umgebung mit installiertem Django. Ich habe den Befehl einfach erneut ausgeführt und es hat funktioniert.
Aalaap
Ich habe den gleichen Fehler. Ich habe Django installiert, aber ich habe es im Verzeichnis dist-packages installiert. Die Docker-Datei verwendet das Ubuntu-Basis-Image. Also habe ich die Docker-Datei aktualisiert, um dies hinzuzufügen, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"aber die Django-App wird immer noch nicht geladen.
Alltej

Antworten:

55

Es hört sich so an, als hätten Sie Django nicht installiert. Sie sollten das von diesem Befehl erzeugte Verzeichnis überprüfen:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Um zu sehen, ob Sie die Django-Pakete dort haben.

Wenn sich in Site-Paketen kein Django-Ordner befindet, ist Django nicht installiert (zumindest für diese Python-Version).

Möglicherweise ist mehr als eine Python-Version installiert, und Django befindet sich in einer anderen Version. Sie können alle Versionen von Python herausfinden, wenn Sie tippen pythonund dann die Tabulatortaste drücken. Hier sind all die verschiedenen Pythons, die ich habe.

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

Sie können den obigen Befehl für jede Python-Version ausführen und im Site-Packages-Verzeichnis der einzelnen Versionen nachsehen, ob in einem von ihnen Django installiert ist. Beispielsweise:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Wenn Sie Django in python2.6 finden, versuchen Sie es mit Ihrem ursprünglichen Befehl

python2.6 manage.py ...
RaviU
quelle
Dies ist, was direkt nach dem Befehl "/usr/lib/python2.6/site-packages"
Krasimir
Gehen Sie in den Ordner "/usr/lib/python2.6/site-packages" und prüfen Sie, ob sich darin ein Ordner namens django befindet.
RaviU
Alles andere nicht Django: D
Krasimir
Hallo, bitte überprüfen Sie meine bearbeitete Antwort. Vielleicht ist dein Django in einer anderen Version von Python.
RaviU
1
Wenn Sie django mit virtualenv oder in einer virtuellen Umgebung installiert haben, müssen Sie sich in der virtuellen Umgebung befinden, damit es ausgeführt werden kann, es sei denn, Sie haben es global im System installiert.
Ramon Suarez
41
sudo pip install django --upgrade 

hat den Trick für mich gemacht.

Codebaum
quelle
4
Ihre Antwort hat bei mir funktioniert, also habe ich sie positiv bewertet. Nur Ihre Antwort allein reichte jedoch nicht aus, denn als ich lief sudo pip install django --upgrade, gab es einen neuen Fehler : No module named psycopg2. Also rannte ich sudo pip install psycopg2 --upgradeund es hat den Trick gemacht.
Dorian Dore
2
Es stellte sich heraus, dass ich Django nicht installiert hatte ... obwohl ich es zuvor auf der Maschine verwendet hatte. Seltsam.
James111
Ich hatte ein Timeout-Problem sudo pip install --default-timeout=100 django --upgradeund alles verlief reibungslos.
Zap
Wenn Sie "pyenv" verwenden, benötigen Sie Folgendes:pip install django --upgrade --user
Inyoka
30

Ich habe den gleichen Fehler erhalten und ihn auf folgende Weise behoben:

Ich musste meine virtuelle Umgebung mit dem folgenden Befehl aktivieren

source python2.7/bin/activate
Anagha
quelle
22

Höchstwahrscheinlich manage.pybeginnt in Ihrer ersten Zeile damit !/usr/bin/python, dass Sie die globale Python des Systems anstelle der in Ihrer virtuellen Umgebung verwenden.

also ersetzen

/usr/bin/python

mit

~/projectpath/venv/bin/python

und du solltest gut sein.

mgPePe
quelle
Vielen Dank. Es half.
Serg Smyk
Mein Projekt hatte ein Bash-Skript, das einen Teil der App aufrief, und in diesem Bash-Skript python startappmusste ich es ändern /path/to/venv/bin/python startappund es funktionierte. Vielen Dank für den Hinweis!
Gordster
13

Nun, ich hatte heute den gleichen Fehler, nachdem ich virtualenv und django installiert hatte. Für mich war es so, dass ich sudo ( sudo pip install django ) für die Installation von django verwendet hatte und versuchte, den runserver manage.py ohne sudo auszuführen . Ich habe gerade sudo hinzugefügt und es hat funktioniert. :) :)

user1578297
quelle
10

Verwenden Sie eine virtuelle Umgebung mit Virtual Wrapper? Bist du auf einem Mac?

Wenn ja, versuchen Sie Folgendes:

Geben Sie Folgendes in Ihre Befehlszeile ein, um die virtuelle Umgebung zu starten und dann daran zu arbeiten

1.)

source virtualenvwrapper.sh

oder

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Hinweis (von einem Neuling) - Setzen Sie keine Klammern um Ihren Umgebungsnamen

Pete Varley
quelle
Ich brauchte ungefähr zwei Sekunden, um herauszufinden, dass virtualenv nicht aktiviert war, aber das war mein Problem ... also upvote, da ich einmal auf den Google-Button geklickt habe und nichts gelesen habe, was auftauchte.
RobotHumans
7

Ich habe das gleiche Problem beim Ausführen des Befehls

python manage.py startapp <Anwendungsname>

Aber das Problem bei mir ist, dass ich diesen Befehl außerhalb der virtuellen Umgebung ausgeführt habe. Aktivieren Sie also zuerst Ihre virtuelle Umgebung und führen Sie den Befehl erneut aus.

Rahul Satal
quelle
1
Mein Projekt hatte ein Bash-Skript, das einen Teil der App aufrief, und in diesem Bash-Skript python startappmusste ich es ändern /path/to/venv/bin/python startappund es funktionierte.
Gordster
5

Dieses Problem tritt auf, wenn Django nicht auf Ihrem Computer installiert ist. Wenn django nicht installiert ist, bedeutet dies, dass das Modul django.core.management ebenfalls nicht installiert ist. Es hat dieses Modul also nicht gefunden und es gibt einen Fehler.
Um dieses Problem zu lösen, sollten wir django mit pip installieren. Öffnen Sie die Befehlszeile cmd (unter Windows) und geben Sie as ein

pip install django

Dieser Befehl installiert Django auf Ihrem Computer. Wenn Sie Pip nicht installiert haben. Sie sollten pip installieren. Hier erfahren Sie, wie Sie pip unter Windows installieren

Harun ERGUL
quelle
5

Ich erlebe das Gleiche und das ist was ich tue.

Zuerst meine Installation von

pip install -r Anforderungen.txt

ist nicht in meiner aktiven Umgebung. Also habe ich meine Umgebung aktiviert und dann die wieder ausgeführt

pip install -r Anforderungen.txt

Jek Hatulan
quelle
4

Okay, so geht es:

Sie haben eine virtuelle Umgebung erstellt und das Django-Modul gehört nur zu dieser Umgebung. Da sich virtualenv von allem anderen isoliert, sehen Sie dies.

Gehen Sie dies durch, um weitere Unterstützung zu erhalten:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

1.Sie können in das Verzeichnis wechseln, in dem Ihre virtuelle Umgebung gespeichert ist, und dann das Django-Modul ausführen.

2. Alternativ können Sie Django global auf Ihren Python-> Site-Paketen installieren, indem Sie entweder pip oder easy_install ausführen

Befehl mit pip: pip install django

dann mach das:

importiere django print (django.get_version ()) (abhängig davon, welche Version von Python du verwendest. Dies für Python 3+ Serien)

und dann können Sie Folgendes ausführen: python manage.py runserver und in Ihrem Webbrowser überprüfen, indem Sie Folgendes eingeben: localhost: 8000, und Sie sollten eine Seite mit Django-Unterstützung sehen.

Hoffe das hilft.

Ashish
quelle
3

Falls dies für andere hilfreich ist ... Ich hatte dieses Problem, weil meine virtuelle Umgebung standardmäßig python2.7 war und ich Django mit Python3 aufrief, während ich Ubuntu verwendete.

um zu überprüfen, welche Python meine virtuelle Umgebung verwendet hat:

$ which python3
>> /usr/bin/python3

hat eine neue virtuelle Umgebung mit Python3 erstellt (unter Verwendung des virtuellen Entwickler-Wrappers https://virtualenvwrapper.readthedocs.org/en/latest/ ):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME

Der Python-Pfad sollte jetzt auf die virtuelle Python zeigen:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3
sk8asd123
quelle
2

Dies passiert auch, wenn Sie die Verzeichnisstruktur Ihres Python-Projekts ändern (ich habe dies getan und dann über die Änderung des Verhaltens verwirrt). In diesem Fall müssen Sie eine Zeile in Ihrer Datei / bin / enabled ändern. Angenommen, Ihr Projekt war bei

/User/me/CodeProjects/coolApp/

und Ihre Aktivierungsdatei ist bei

/User/me/CodeProjects/coolApp/venv/bin/activate

Wenn Sie Ihr Projekt eingerichtet haben, haben Sie Ihr Projekt in geändert

/User/me/CodeProjects/v1-coolApp/

oder so. Sie müssten dann öffnen

/User/me/CodeProjects/v1-coolApp/venv/bin/activate

Finde die Zeile, in der es steht

VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
export VIRTUAL_ENV

und ändern Sie es in

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"

vor der Reaktivierung

Adamadam
quelle
2

In meinem Fall verwende ich Ubuntu. Das Problem kann sein, dass ich als normaler Benutzer nicht die Berechtigung habe, in diesen Ordner zu schreiben. Sie können einfach das sudovor Ihrem Befehl hinzufügen und es sollte perfekt funktionieren. In meinem Fall sudo python manage.py syncdb.

Erschöpft
quelle
2

Ich hatte das gleiche Problem und der Grund, warum ich diese Nachricht erhielt, war, dass ich "manage.py runserver" ausgeführt habe, während "python manage.py runserver" das Problem behoben hat.

MAhsan
quelle
2
Beachten Sie, dass Python 3 verwendet werden muss python3 manage.py runserver. Andernfalls bleibt der Importfehler bestehen.
Rbaleksandar
2

Ich hatte das gleiche Problem und das Folgende hat gut funktioniert. Sie sollten im Hauptordner Ihres Projekts navigieren und dann Folgendes eingeben:

source bin/activate 
Goldfisch
quelle
1

hatte den gleichen problem.run-Befehl 'python manage.py migrate' wie root. funktioniert gut mit Root-Zugriff (sudo python manage.py migrate)

Hemanth Gowda
quelle
1
Das ist eine Art Behandlung des Symptoms, nicht der Ursache. Wenn sudo funktioniert, liegt wahrscheinlich ein Berechtigungsproblem vor.
evandentremont
Sicherlich nur eine Möglichkeit, das Problem zu diagnostizieren.
Hemanth Gowda
1

In meinem Fall habe ich pyCharm 5 auf dem Mac verwendet. Ich hatte auch dieses Problem und nachdem ich diesen Befehl ausgeführt hatte, war mein Problem gelöst

sudo pip install django --upgrade 
Amir
quelle
1

Sie können es so versuchen: python3 manage.py migrate(machen Sie sur, um im src/Verzeichnis zu sein)

Sie können es auch mit versuchen pip install -r requirements.txt(stellen Sie requirements.txtsicher, dass Sie die Datei sehen, wenn Sie eingebenls nach der Migration eingeben

Wenn es doch immer noch nicht funktioniert, versuchen Sie es pip install django

Ich hoffe es hilft

7Rust
quelle
0

Sie müssen zuerst Ihr Projekt auswählen, bevor Sie den Server ausführen. Geben Sie dies workon your_project_name dann ein python manage.py runserver

Syiwa Wahyu Saputra
quelle
-1

Der Konflikt zwischen Datei- und Verzeichnisbesitz führt hier zu Problemen. Stellen Sie sicher, dass der aktuelle Benutzer Eigentümer der Verzeichnisse und Dateien unter dem Projekt ist. (Sie können sie mit dem Befehl chown mit der Option -R ändern.) Versuchen Sie, den Befehl erneut auszuführen: Dies löste das Problem für mich, als ich das Beispiel "Erste Django-App" durchlief:

python manage.py startapp polls
Keesar
quelle
-1

Ich habe das gleiche Problem beim Versuch, den Runnerver python manage.py zu verwenden . In meinem Fall benutze ich nur sudo su . Verwenden Sie das Terminal als Root und versuchen Sie es erneut, und es funktioniert teilweise. Also benutze ich python manage.py migrate comand und es behebt es.

user314165
quelle