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
import django
und / oderfrom django.core import management
?Antworten:
Sie müssen sicherstellen, dass sich Django in Ihrem PYTHONPATH befindet.
Führen Sie zum Testen einfach
import django
eine 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_install
oder mit dem imsetup.py
Lieferumfang django), dann überprüfen Sie in Ihrersite-packages
wenn die.pth
Datei (easy-install.pth
,django.pth
, ...) auf den korrekten Ordner.HIH.
quelle
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:
und das Ergebnis ist:
.py = Python.File
Dies bedeutet, dass .py mit Python.File verknüpft ist
dann habe ich das versucht:
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:
dann ist alles in Ordnung!
quelle
django-admin.py startproject mysite
, was sehr implizit ist.virtualenv
. Die Antwort führte mich zu der Lösung,python django-admin.py
statt nur zudjango-admin.py
Sie können dieses Problem umgehen, indem Sie den vollständigen Pfad zu Ihrer Datei django-admin.py angeben
quelle
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.
quelle
core
Bibliothek 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.exe
anstelle von Cygwin zu verwendendjango-admin.py startproject
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-packages
und 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
quelle
zsh: permission denied: /etc/profile
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
quelle
django-admin.py startproject mysite
und 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.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.
quelle
Das hat bei mir mit bitnami djangostack funktioniert:
python apps\django\django\bin\django-admin.py startproject mysite
quelle
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.
quelle
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,
quelle
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.
quelle
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
quelle
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
quelle
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:
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 :)
quelle
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.
quelle
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.exe
als 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
python
Befehl 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.
quelle
Das ist mir passiert, weil ich
pip
als 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.
quelle
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 ist der Name meiner virtuellen Umgebung.
quelle
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 {} \;
quelle
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.
quelle
Eine kleine schnelle Lösung besteht nur darin, einen Symlink zu erstellen
ln -s $SOMEWHERE/lib/python2.6/site-packages/django/ ./django
quelle
Ich hatte das gleiche Problem, es war klar, dass ich ein
PYTHONPATH
Konfigurationsproblem hatte. Die Lösung ist ganz einfach: Erstellen Sie einfach eine Datei mit diesem Namendjango.pth
in IhremPYTHONHOME\Lib\site-packages
Verzeichnis, inPYTHONHOME
dem sich Python befindet (mein Verzeichnis lautet: C: \ Python27). Fügen Sie derdjango.pth
Datei die folgende Zeile hinzu :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.pth
jedes Verzeichnis enthält, in das Sie aufgenommen werden möchtenPYTHONPATH
. Tatsächlich können Sie diese Datei beliebig benennen,path.pth
z. B. wenn Sie möchten, dass sie allgemeiner ist und mehrere Verzeichnispfade enthält.quelle
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.quelle
Mir wurde klar, dass dies passiert ist, weil ich nicht gerannt bin
python setup.py install
. Das hat die Umgebung eingerichtet.quelle
Nachdem ich viel gelesen hatte, fand ich eine Lösung, die für mich funktioniert.
ich habe
django version 1.9.2
Setzen Sie alle Systemvariablen auf "Pfad". Keine doppelte Kopie in der Benutzervariablen oder im PYTHONPATH.
Setzen Sie dann Value in regedit
hat auf Befehl eine virtuelle Umgebung im gewünschten Ordner erstellt
virtualenv VENV
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
quelle