Kein Modul namens django.core

68

Ich habe nach der Deinstallation meiner alten Django-Version auf die neueste Django-Version 1.0.2 aktualisiert. Aber jetzt, wenn ich django-admin.py ausführe, wird der folgende Fehler angezeigt. Wie kann ich das beheben?

Traceback (most recent call last):
  File "C:\Python25\Lib\site-packages\django\bin\django-admin.py", line 2, in <module>
    from django.core import management
ImportError: No module named django.core
Sirish
quelle
1
Sieht aus wie ein Problem mit dem veralteten Pfad. Kann ich nicht sagen. Können Sie dies in der Python-Shell erfolgreich tun import djangound / oder from django.core import management?
Ayaz
Ja, ich kann beides ohne Fehler machen
Sirish
1
Haben Sie mehrere Python-Versionen installiert? Wie rufst du django-admin auf?
Ayaz
Bitte führen Sie Folgendes aus: import sys; print sys.path
S.Lott
3
Nachdem Sie das gesamte Python-Verzeichnis entfernt und Python / django erneut installiert haben, ist das Problem behoben.
Null

Antworten:

36

Sie müssen sicherstellen, dass sich Django in Ihrem PYTHONPATH befindet.

Führen Sie zum Testen einfach import djangoeine Python-Shell aus. Es sollte keine Ausgabe erfolgen:

ActivePython 2.5.1.1 (ActiveState Software Inc.) based on
Python 2.5.1 (r251:54863, May  1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>

Wenn Sie django über installiert setuptools( easy_installoder mit dem im setup.pyLieferumfang django), dann überprüfen Sie in Ihrer site-packageswenn die .pthDatei ( easy-install.pth, django.pth, ...) auf den korrekten Ordner.

HIH.

Fil
quelle
3
Wenn du die Kommentare zu seiner Frage liest, hat er bereits versucht, Djago zu importieren und es funktioniert.
Hasen
2
@hasen Er hatte wahrscheinlich Django in seinem lokalen App-Ordner, aber keinen Django in seinem Python-Pfad.
Björn
44

Ich habe das gleiche Problem unter Windows und es scheint, dass ich das Problem gefunden habe. Ich habe sowohl 2.7 als auch 3.x installiert. Es scheint, dass es etwas mit dem Associate-Programm von .py zu tun hat:

Geben Sie im Befehlszeilentyp Folgendes ein:

assoc .py

und das Ergebnis ist:

.py = Python.File

Dies bedeutet, dass .py mit Python.File verknüpft ist

dann habe ich das versucht:

ftype Python.File

Ich habe:

Python.File = "C: \ Python32 \ python.exe" "% 1"% *

Das bedeutet, dass in der Befehlszeile .py mit meiner Python 3.2-Installation verknüpft ist - und deshalb kann ich nicht einfach "django-admin.py blah blah" eingeben, um django zu verwenden.

Sie müssen lediglich die Zuordnung ändern:

ftype Python.File = "C: \ Python27 \ python.exe" "% 1"% *

dann ist alles in Ordnung!

Noah
quelle
1
Das hat sehr geholfen. Ich hatte das gleiche Problem. Obwohl ich Python ausführe und die Version 2.7 ist, wurde in der Version Python 3.2 ausgeführt, wenn ich eine Datei wie C: \ test.py ausführe. Ich möchte Ihrer Lösung jedoch noch einen Tipp hinzufügen. Sie müssen die Eingabeaufforderung als Administrator ausführen, damit sie funktioniert. Andernfalls wird die Fehlermeldung "Zugriff verweigert"
angezeigt
1
Aus meiner Sicht ist diese Antwort für Python-Neulinge (genau wie ich), die virtualenv oder mehrere Python-Installationen (insbesondere unter Windows) aktiviert haben, am hilfreichsten. Ich möchte, dass diese Antwort ganz oben auf dem Thema steht. Ich denke auch, dass das Django-Tutorial einen Hinweis zu diesem Fall enthalten sollte (Python + Windows + VirtualEnv / Multiple Pythons). Im ersten Teil des Tutorials heißt es nur, zu tippen django-admin.py startproject mysite, was sehr implizit ist.
Ajukraine
Es hat mir auch sehr geholfen .. tolle Antwort !!
Tariq M Nasim
Genial. Ich habe auch ein Blog gefunden, das das Problem behebt, ohne die Dateizuordnung dauerhaft zu ändern. djangonautlostinspace.wordpress.com/2012/04/16/…
phazei
Ich habe für diese Antwort gestimmt, aber ich hatte kein Problem mit verschiedenen Python-Versionen. Stattdessen war es ein Konflikt zwischen der Hauptinstallation von Python und der eingeschalteten virtualenv. Die Antwort führte mich zu der Lösung, python django-admin.pystatt nur zu django-admin.py
laufen
24

Sie können dieses Problem umgehen, indem Sie den vollständigen Pfad zu Ihrer Datei django-admin.py angeben

python c:\python25\scripts\django-admin.py startproject mysite
Niyaz
quelle
Vielen Dank! Aber in meinem Fall habe ich "python3" anstelle von "python" geschrieben. Gelöst!
Breno Medeiros de Oliveira
16

Ich bin heute auf dieses Problem gestoßen. Es stellte sich heraus, dass ich C: \ Python26 in meinem Pfad hatte und .py-Dateien Python 3.1 zugeordnet waren. Durch Reparieren der richtigen Version von Python, entweder über Programme und Funktionen oder durch Ausführen der MSI, werden die Zuordnungen behoben.

Steve McKay
quelle
1
Das war auch für mich das Problem. HINWEIS: Lassen Sie sich nicht täuschen, wenn beim Ausführen des Python-Befehls Version 2.X angezeigt wird. Die Ausführung der Django-Datei kann weiterhin mit der ausführbaren Datei 3.1 verknüpft werden.
Adam A
1
Beachten Sie, dass sich dies auf die Dateizuordnungen von Windows bezieht. In Windows 7 kann dies unter Systemsteuerung> Programme> Standardprogramme> Datei zuordnen geändert werden ...
Brian Ortiz
Sieht so aus, als könnte dies nicht manuell behoben werden, wie ich dachte. Befehlszeilenargumente sind fehlerhaft. Installieren Sie einfach Python neu.
Brian Ortiz
Ich hatte ein ähnliches Problem, bei dem Django die coreBibliothek nicht finden konnte , aber das Problem für mich war, dass Cygwin das verwendete Python (2.6) anstelle von Python 2.7 verwendet, das ich außerhalb von Cygwin installiert habe Lösung war, cmd.exeanstelle von Cygwin zu verwendendjango-admin.py startproject
TankorSmash
11

Wie andere oben erwähnt, war es für mich ein Problem mit PYTHONPATH-Umgebungsvariablen, aber niemand hat wirklich gezeigt, wie man es für Personen einstellt, die die zusätzliche Anweisung verwenden können.

Linux (Bash)

Ich habe diese Variable in meiner bashrc-Datei in meinem Home-Ordner festgelegt (.bashrc ist die Datei für mich, da meine Shell / bin / bash ist).

vim ~/.bashrc
export PYTHONPATH=/usr/local/python-2.7.2/lib/python2.7/site-packages:$PYTHONPATH
source ~/.bashrc

Der Pfad sollte überall dort sein, wo sich Ihre Django-Quelle befindet. Meins befindet sich unter /usr/local/python-2.7.2/lib/python2.7/site-packages/django, daher habe ich gerade /usr/local/python-2.7.2/lib/python2.7/site- angegeben Pakete ohne den Django-Teil.

OSX

Unter OSX lautet der Pfad /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packagesund Sie können ihn hinzufügen zu /etc/profile:

sudo echo "PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:$PYTHONPATH" >> /etc/profile
source /etc/profile
Banjer
quelle
Wenn ich zsh zsh: permission denied: /etc/profile
benutze, wird es angezeigt
9

Ich bin sicher, dass es mit einem Fehler in meinem Setup zusammenhängt, aber ich habe das gleiche Problem und es funktioniert ordnungsgemäß, wenn ich es so nenne

c:\somedir>python c:\Python26\scripts\django-admin.py startproject mysite
cmsjr
quelle
Ich hatte das gleiche Problem und das hat auch bei mir funktioniert ... weiß jemand warum?
Sam
2
Ich habe die Antwort gefunden, ich habe Python3 und Python27 auf demselben Computer, es ist ein Windows-Computer. Wenn ich den Befehl c: \> python in der Konsole ausführe, ruft er python27 auf, also existiert django, aber wenn ich ein Python-Skript folgendermaßen ausführe: "c: \> test.py" wird es mit python3 ausgeführt, also der Fehler (Ich bin an Linux gewöhnt, ich fühle mich immer noch verloren in Windows Env Handling)
Sam
1
Ich habe Python 2.5 und Python 2.7. Das hat auch bei mir funktioniert! Früher habe ich nur auf dem cmd ausgeführt django-admin.py startproject mysiteund das getan, was Noad oben geschrieben hat, aber festgestellt, dass meine Zuordnung von .py zu Python 2.7 besteht. Daher bin ich mir nicht sicher, warum dies besonders funktioniert.
bad_keypoints
1
Unter Windows-Virtualenv muss diese Syntax verwendet werden.
Brent81
7

Wenn Sie Windows verwenden, führen Sie es nicht mit 'django-admin.py' aus, da dies Ihre äußere python.exe zum Ausführen aufruft und nicht in den Django in der virtuellen Umgebung eingelesen werden kann. Versuchen Sie 'python django-admin.py', um Ihre python.exe in Ihrer Umgebung zu verwenden.

Lichenbo
quelle
5

Das hat bei mir mit bitnami djangostack funktioniert:

python apps\django\django\bin\django-admin.py startproject mysite
Tod
quelle
2

Ich hatte das gleiche Problem in Windows XP. Der Grund war, dass ich mehrere Python-Versionen (2.6.3.2) installiert habe. Windows 'PATH ist korrekt auf python26 eingestellt, aber die .py-Datei ist mit python32 verknüpft. Ich möchte, dass die .py-Datei mit python26 verknüpft ist. Um sie zu lösen, klicken Sie einfach mit der rechten Maustaste auf die * .py (z. B. django-admin.py) und wählen Sie "Öffnen mit" -> "Programm auswählen ...". -> "Durchsuchen ..." (wählen Sie c: \ python26 \ python.ext) -> "Ok". Dann können wir django-admin.py im cmd ausführen, ohne das Expatiatory-Präfix "c: \ python26 \ lib \ site-packages \ django \ bin" zu benötigen.

af999
quelle
2

Ich weiß, dass dies eine alte Frage ist, aber ich hatte nur das gleiche Problem, in meinem Fall, weil ich virtualenv mit django verwende, aber .py-Dateierweiterungen in Windows mit der Hauptinstallation von Python verbunden sind django-admin.py befinden sich direkt an der Eingabeaufforderung und werden mit der Hauptinstallation von Python ausgeführt, ohne dass django installiert ist.

Da ich nicht weiß, ob es in Windows ein Hash-Pfund-Äquivalent gibt, habe ich dies umgangen, indem ich Python gefolgt vom vollständigen Pfad der Datei django-admin.py ausgeführt habe, oder Sie können auch das Batch-Skript virtualenv ändern, um die Dateizuordnungen zu ändern und ändern Sie es zurück, wenn Sie es deaktivieren (obwohl ich nicht sicher bin, wie ich es machen soll, da ich mit Batch-Skripten nicht wirklich vertraut bin).

Hoffe das hilft,

hndr
quelle
2

Ich hatte das gleiche Problem und erinnerte mich, dass ich iPython am vergangenen Nachmittag installiert hatte. Ich habe iPython deinstalliert und das Problem ist behoben. Ich arbeite übrigens mit virtualenv. Ich hatte iPython im systemweiten Verzeichnis der Site-Pakete installiert, daher habe ich iPython in jeder von mir verwendeten virtuellen Umgebung neu installiert. Nach der gestrigen Installation von iPython war mir eine Warnmeldung (ab Version 0.13 von iPython) aufgefallen, dass festgestellt wurde, dass ich virtualenv verwende, und dass ich iPyton in jedem virtualenv installieren sollte, wenn ich auf Probleme stoße.

Jononomo
quelle
1

Wenn Ihre Pfadvariablen korrekt sind und Sie über die Python-Shell Folgendes tun können: Stellen Sie in der Importverwaltung von django.core sicher, dass Sie "python" vor "django-admin.py" als solches einfügen: python django-admin.py startproject thelittlethings

Mindspam
quelle
1

Die einfachste, wenn auch nicht die eleganteste Lösung besteht darin, die Datei django-admin.py aus dem Ordner "Scripts" zu kopieren. Der Ordner "Skripte" befindet sich unter Ihrer Python-Installation. Auf meinem Computer befindet es sich in C: \ Python26 \ Scripts. Fügen Sie dann die Datei django-admin.py in den Ordner ein, aus dem Sie die Datei ausführen möchten. Es ist richtig, dass die Verwendung des Systempfads Flexibilität bietet. Dies ist eine besondere Lösung, wenn Sie es eilig haben. Geben Sie dann beispielsweise python django-admin.py startproject fluffyteaspoons ein und Sie erstellen das Projekt fluffyteaspoons

Kieran
quelle
1

In meinem Fall bin ich unter OS X Lion und habe Python mit Homebrew installiert. Ich habe den gleichen Fehler erhalten, aber keine der hier veröffentlichten Lösungen hat mir geholfen. In meinem Fall musste ich nur das Skript bearbeiten:

vim /usr/local/share/python/django-admin.py

Und ich bemerkte, dass die erste Zeile falsch war, da sie auf die Python-Installation des Systems zeigte:

#!/usr/bin/python

Ich habe es nur so modifiziert, dass es auf die Installation von Homebrew verweist:

#!/usr/local/bin/python

Und es hat funktioniert :)

David Morales
quelle
1

Dies funktionierte unter Mac OS X.

Führen Sie im Terminal Python aus. In Python: Importieren Sie sys print sys.path

Suchen Sie nach dem Pfad der Site-Pakete. Ich fand dies in der Ausgabe von sys.path: '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages'

Beenden Sie Python. Finden Sie heraus, wo sich Ihre aktuellen Site-Pakete befinden. Meine waren unter /Library/Python/2.6/site-packages

Seien Sie jetzt vorsichtig: Überprüfen Sie den Inhalt von Site-Paketen, um sicherzustellen, dass er leer ist. Das heißt, das Verzeichnis /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages sollte leer sein oder nur eine Readme-Datei enthalten. Wenn dies der Fall ist, löschen Sie dieses Verzeichnis, da Sie jetzt einen Symlink erstellen möchten.

ln -s /Library/Python/2.6/site-packages /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Wenn Sie den Ordner nicht löschen, wird der Symlink in den Ordner eingefügt.

Andere Optionen sind das Hinzufügen des Pfads zum sys.path. Ich habe die Symlink-Route gewählt, weil ich einige Versionen von Python habe, nicht mehrere Versionen von Django möchte und nur auf die bekannte Arbeitskopie verweisen möchte.

kd4ttc
quelle
1

Ich habe gerade den gleichen ImportError in Windows Vista mit Python 2.7 und 3.2 installiert und verwende virualenv mit Python 2.7 und Django 1.4.3.

Ich habe die Dateizuordnung von .py-Dateien im Explorer von 3.2 auf 2.7 geändert. Klicken Sie mit der rechten Maustaste auf eine .py-Datei und ändern Sie die Einstellungen. Ich habe immer noch den ImportError.

Ich lief cmd.exeals Administrator und kopierte die frühereftype Sachen . Beachten Sie nach einem Fehler, dass doppelte Anführungszeichen nicht korrekt vom Browser nach cmd kopiert werden. Der Befehl wurde in cmd umgeschrieben, aber ich habe immer noch den ImportError.

Im Stammverzeichnis der aktivierten virtuellen Umgebung habe ich den pythonBefehl und den Pfad von dort explizit zu django-admin.py angegeben. (env_p27) C:\Users\Gemmu\env_p27>python .\Scripts\django-admin.py startproject mysite

Das hat funktioniert.

Vielen Dank für die Hilfe für alle.

Gemmu
quelle
1

Das ist mir passiert, weil ich pipals gelaufen binsudo während meiner virtualenv ist Setup nicht außerhalb site Pakete importieren , so Django für den Root - Benutzer installiert wurde , aber nicht in der virtualenv, obwohl ich hatte virtualenv aktiviert , wenn ich sudo lief.

Lösung auf root umschalten, venv aktivieren und pip installieren.

Emil Davtyan
quelle
1

Um an was Lichenbo anzuheften sagen gesagt hat ... Wenn Sie Windows verwenden, führen Sie es nicht mit 'django-admin.py' aus ...

Ich arbeite in einer virtuellen Umgebung. Der Pfad und der Befehl zum Erstellen eines neuen Projekts sehen also folgendermaßen aus:

(DjangoEnv)  C:\users\timreilly\Envs\django\Scripts\django-admin.exe startproject myproject

DjangoEnv ist der Name meiner virtuellen Umgebung.

Tim Reilly
quelle
0

Wie üblich konnte ein Installationsskript keine weltweiten Lese- / Ausführungsberechtigungen festlegen :) Gehen Sie folgendermaßen vor:

sudo find  /usr/lib/python2.5/site-packages/django -type d -exec chmod go+rx {} \;
sudo find  /usr/lib/python2.5/site-packages/django -type f -exec chmod go+r {} \;
greg
quelle
0

Vielen Dank für die Veröffentlichung der Frage und Antworten. Ich habe zwei Versionen von Python installiert, aber root zeigte auf die Version / usr / bin und ich wollte die Version 2.7 von Python in / usr / local / bin verwenden. Nach dem Neuaufbau / der Neuinstallation von Django und mysqldb ist alles in Ordnung und ich erhalte den Fehler nicht.

Octopusgrabbus
quelle
0

Eine kleine schnelle Lösung besteht nur darin, einen Symlink zu erstellen ln -s $SOMEWHERE/lib/python2.6/site-packages/django/ ./django

Sultan
quelle
0

Ich hatte das gleiche Problem, es war klar, dass ich ein PYTHONPATHKonfigurationsproblem hatte. Die Lösung ist ganz einfach: Erstellen Sie einfach eine Datei mit diesem Namen django.pthin Ihrem PYTHONHOME\Lib\site-packagesVerzeichnis, in PYTHONHOMEdem sich Python befindet (mein Verzeichnis lautet: C: \ Python27). Fügen Sie der django.pthDatei die folgende Zeile hinzu :

PYTHONHOME\Lib\site-packages\django

Natürlich muss man sich ändern PYTHONHOME das Installationsverzeichnis Ihres Python , wie ich erklärt habe.

Beachten Sie, dass Sie das so bearbeiten können, dass es django.pthjedes Verzeichnis enthält, in das Sie aufgenommen werden möchten PYTHONPATH. Tatsächlich können Sie diese Datei beliebig benennen, path.pthz. B. wenn Sie möchten, dass sie allgemeiner ist und mehrere Verzeichnispfade enthält.

wassimans
quelle
0

Nun ... ich mache etwas Radikales. Ich deinstalliere Python und lösche aus der Umgebung Variables/PATH this: ;C:\Python26\Scripts;C:\Python26. und ihrer Arbeit ... Ich hatte dein Problem schon einmal.

kry
quelle
0

Mir wurde klar, dass dies passiert ist, weil ich nicht gerannt bin python setup.py install. Das hat die Umgebung eingerichtet.

LynxLee
quelle
0

Nachdem ich viel gelesen hatte, fand ich eine Lösung, die für mich funktioniert.

ich habe

 django version 1.9.2
  1. Setzen Sie alle Systemvariablen auf "Pfad". Keine doppelte Kopie in der Benutzervariablen oder im PYTHONPATH. Geben Sie hier die Bildbeschreibung ein

  2. Setzen Sie dann Value in regedit

Geben Sie hier die Bildbeschreibung ein

  1. hat auf Befehl eine virtuelle Umgebung im gewünschten Ordner erstellt

    virtualenv VENV

  2. Und schließlich in cmd

verwendeter Befehl

django-admin.py startproject MySite

***and not this***

python django-admin.py startproject MySite 

im Stammordner des "VENV"

Und es hat funktioniert

Hemant c
quelle