Django installiert, aber Django kann nicht in Python importiert werden


14

Ich habe Django auf verschiedene Arten über apt-getund installiert pip install. Sie alle sagen, ich hätte die neueste Version von Django. Immer wenn ich nun Python in Terminal starte und import django eingebe, erhalte ich

ImportError: No module named django

Wenn ich jedoch renne, django-admin --versionerhalte ich

1.4.3

Ich weiß, dass es installiert ist, aber warum findet Python das Django-Modul nicht?


Haben Sie Python manuell installiert?
Ignacio Vazquez-Abrams

Ehrlich gesagt erinnere ich mich nicht.
jason328

Antworten:


7

pythonfindet nicht, djangoweil es nicht auf dem Weg ist. Sie können sehen, dass die Liste der Pfade pythonnach folgenden Modulen aussieht:

$ python
>>> import sys
>>> sys.path

Sie können importieren, djangowenn Sie den Ort finden, an dem es installiert ist, und diesen Ort zum pythonPfad hinzufügen , zum Beispiel so:

$ PYTHONPATH=/path/to/django/parent/dir python
>>> import django  # should work now

Ihr eigentliches Problem ist jedoch, dass mit Ihrer pythonInstallation etwas nicht stimmt . Wenn Sie beides pythonUND djangomit installiert haben apt-get, dann djangosollten Sie sich auf jeden Fall pythonohne schmutzige Hacks wie oben auf den Weg machen.

Das heißt, wenn Sie mit Django arbeiten, ist es am besten, NICHT zu verwenden, apt-getsondern eine virtuelle Umgebung mit virtualenv(Sie können virtualenvsich mit installieren apt-get) zu erstellen und Django und andere Module zu installieren, die Ihre Django-Site möglicherweise pipin der virtuellen Umgebung benötigt. Auf diese Weise können Sie mehrere Django-Projekte mit genau den erforderlichen Python-Modulen und -Versionen nebeneinander haben. Es ist nur ein paar zusätzliche Schritte, aber es lohnt sich auf jeden Fall und erspart Ihnen in Zukunft viel Frust.


Sie können den Pfad auch direkt in Ihren Code einfügen, indem Sie sys.path.append ('path / to / django') verwenden und dann wie
gewohnt

@NGRhodes Das Hardcodieren von Pfaden im Code ist keine gute Idee.
Janos

kann immer den Pfad von einem Konfigurationselement lesen, so dass es eine Laufzeiteinstellung ist :)
NGRhodes

4

Ich hatte das gleiche Problem, als ich PyCharm Community Edition zum Erstellen von Django-Projekten verwendete.

Für mich haben die folgenden Schritte funktioniert:

Es stellt sich heraus, dass Python möchte, dass Sie eine virtuelle Umgebung erstellen, Django darin installieren und dann den Server ausführen. Um dies zu tun,

Erstellen Sie eine virtuelle Umgebung

1) Installieren Sie die virtuelle Umgebung mit pip install virtualenv.

2) Navigieren Sie zum Projektordner und geben Sie Folgendes ein virtualenv env(hier envder Name der virtuellen Umgebung). Dadurch wird ein neuer Ordner erstellt, der envim Projektordner benannt wird.

3) Navigieren Sie mit zu env/ScriptsIhrem Projektordner .cd env/Scripts

4) activateGeben Sie ein und drücken Sie die Eingabetaste. Dies sollte die virtuelle Umgebung starten. Sie können dies so überprüfen, wie es Ihrem aktuellen Pfad vorangestellt wäre.(env)

Installieren Sie Django

1) Sobald Sie sich in der virtuellen Umgebung befinden, kehren Sie mit cd ../..und geben Sie Folgendes in Ihren Projektordner ein pip install django.

2) Sie können die Installation überprüfen, indem Sie Folgendes eingeben django-admin --version. Es sollte die in der virtuellen Umgebung installierte Django-Versionsnummer anzeigen.

Geben Sie nun ein python manage.py runserver, um den Python-Server zu starten.


0

Wenn Sie mehrere Python-Versionen auf Ihrem Computer installiert haben. Es kommt zu Konflikten zwischen den verschiedenen Paketen, die Sie installieren möchten. Der beste Ansatz ist die Verwendung von virtualenv ..

  1. Einfache Installation der virtuellen Umgebung und der Python-Version
  2. Verwenden Sie virtualenv env, um eine virtuelle Umgebung zu erstellen.
  3. aktiviere dein virtualenv. mit. / env_name / bin / activate
  4. benutze pip install django == 1.70 (gib die Version an, um django zu installieren)
  5. Pip-Liste, um alle installierten Pakete aufzulisten.

0

Ich habe dieses Problem und hatte es noch bis vor kurzem in meinem Projekt. Vscode hat meine virtuelle Umgebung nicht erkannt. Wenn ich also versuche, das Projekt auszuführen, erhalte ich eine Fehlermeldung, dass Vscode Django nicht importieren kann

Das Update dafür für mich, dass ich die Bibliotheken in meiner virtuellen Umgebung in eine Füllung exportiert habe

pip freeze > req.txt

dann habe ich eine neue virtuelle umgebung mit den gleichen anforderungen erstellt und es hat funktioniert

Hinweis: Versuchen Sie, diese virtuelle Python-Umgebung nachzuschlagen


0

Ich hatte das gleiche Problem. Ich habe die virtuelle Umgebung $ source bin / activate aktiviert

danach zeigte es mir die Version von Django

Es war nicht nötig, irgendetwas zu installieren.


mamata @ mamta-inspire-all: ~ / dodjango $ python -m django --version / usr / bin / python: Kein Modul namens django

mamata @ mamta-inspire-all: ~ / dodjango $ django-admin --version

Befehl 'django-admin' nicht gefunden, kann aber installiert werden mit:

sudo apt installiere python-django-common

mamata @ mamta-inspire-all: ~ / dodjango $ source bin / activate

(dodjango) mamata @ mamta-inspire-all: ~ / dodjango $ ls

bin include lib lib64 mamusite pyvenv.cfg share

(dodjango) mamata @ mamta-inspire-all: ~ / dodjango $ django-admin --version 2.2.5

(dodjango) mamata @ mamta-inspire-all: ~ / dodjango $ python -m django --version 2.2.5



Versuchen Sie, die Antwort mit Hilfe von AskUbuntu zu bearbeiten.
NIMISHAN

-1

Ich habe dieses Problem, als ich den Projektordner in PyCharm umbenannt habe.

  1. Die Registerkarte "Terminal" gelangt nicht mehr in die virtuelle Umgebung ( venvOrdner). Um das zu beheben, ging ich zum Settings -> Project -> ProjectDolmetscher und änderte dort den Ordner.
  2. Django "verschwunden". django-admin --versionhat nicht geantwortet. Um das zu beheben, habe ich im pip install djangoRahmen der venv.

Es half.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.