Django jest zainstalowany, ale nie może importować django do Pythona

14

Zainstalowałem Django na wiele sposobów, poprzez apt-geti pip install. Wszyscy mówią, że mam najnowszą wersję Django. Teraz za każdym razem, gdy uruchamiam python w terminalu i wpisuję import django, otrzymuję

ImportError: No module named django

Jednak kiedy biegnę django-admin --version, otrzymuję

1.4.3

Wiem, że jest zainstalowany, ale dlaczego python nie znajduje modułu django?

jason328
źródło
Czy zainstalowałeś Python ręcznie?
Ignacio Vazquez-Abrams
Szczerze mówiąc, nie pamiętam.
jason328

Odpowiedzi:

7

pythonnie znajduje, djangoponieważ nie jest na swojej drodze. Możesz zobaczyć listę ścieżek pythonposzukujących modułów takich jak ten:

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

Możesz zaimportować, djangojeśli znajdziesz lokalizację, w której jest zainstalowany, i dodać tę lokalizację do pythonścieżki, na przykład:

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

Ale twoim prawdziwym problemem jest to, że coś jest nie tak z twoją pythoninstalacją. Jeśli zainstalowano zarówno pythonI djangoza pomocą apt-get, a następnie djangopowinny być na pewno python„s ścieżkę bez brudne sztuczki jak powyżej.

To powiedziawszy, pracując z Django, najlepszym rozwiązaniem jest NIE używanie, apt-getale tworzenie środowiska wirtualnego za pomocą virtualenv(możesz zainstalować virtualenvsam za pomocą apt-get) i instalowanie Django i innych modułów, których Twoja witryna Django może potrzebować pipw środowisku wirtualnym. W ten sposób możesz mieć wiele projektów Django obok siebie, z precyzyjnie wymaganymi modułami i wersjami Pythona. To tylko kilka dodatkowych kroków do zrobienia, ale zdecydowanie warto i zaoszczędzisz wiele frustracji w przyszłości.

janos
źródło
Możesz także dodać ścieżkę bezpośrednio w kodzie, używając sys.path.append ('path / to / django'), a następnie zaimportować jak zwykle
NGRhodes
@NGRhodes Ścieżki kodowania w kodzie nie są dobrym pomysłem.
janos
zawsze można odczytać ścieżkę z elementu konfiguracji więc jego otoczeniu wykonawczym :)
NGRhodes
4

Miałem ten sam problem, kiedy korzystałem z PyCharm Community Edition do tworzenia projektów Django.

Dla mnie zadziałały następujące kroki:

Okazuje się, że python chce, abyś utworzył środowisko wirtualne, zainstalował w nim django, a następnie uruchomił serwer. Aby to zrobić

Utwórz środowisko wirtualne

1) Zainstaluj środowisko wirtualne za pomocą pip install virtualenv.

2) Przejdź do folderu projektu i wpisz virtualenv env(Oto envnazwa środowiska wirtualnego.) Spowoduje to utworzenie nowego folderu o nazwie envwewnątrz folderu projektu.

3) Przejdź do env/Scriptsfolderu projektu za pomocą .cd env/Scripts

4) Wpisz activatei naciśnij Enter. To powinno uruchomić środowisko wirtualne. Możesz to zweryfikować, tak jak byłoby to prefiksem do twojej bieżącej ścieżki.(env)

Zainstaluj Django

1) W środowisku wirtualnym wróć do folderu projektu, używając cd ../..i pisz pip install django.

2) Możesz zweryfikować jego instalację, pisząc django-admin --version. Powinien wyświetlać numer wersji django zainstalowany w środowisku wirtualnym.

Teraz wpisz, python manage.py runserveraby uruchomić serwer python.

Sourav Samanta
źródło
0

Jeśli masz wiele wersji Pythona zainstalowanych na twoim komputerze. Różne pakiety, które próbujesz zainstalować, powodują konflikty, dlatego najlepszym rozwiązaniem jest użycie virtualenv ..

  1. Prosta instalacja środowiska wirtualnego i wersji Pythona
  2. użyj virtualenv env do stworzenia wirtualnego środowiska.
  3. aktywuj virtualenv. za pomocą . / env_name / bin / aktywuj
  4. użyj pip install django == 1.70 (określ wersję, aby zainstalować django)
  5. lista pip, aby wyświetlić listę wszystkich zainstalowanych pakietów.
Suman Astani
źródło
0

mam ten problem i nadal go miałem do niedawna w moim projekcie vscode nie rozpoznał mojego wirtualnego środowiska, więc kiedy próbuję uruchomić projekt, pojawia się błąd, że vscode nie może zaimportować django

naprawiono dla mnie to, że wyeksportowałem biblioteki z mojego wirtualnego środowiska do wypełnienia

pip freeze > req.txt

potem stworzyłem nowe środowisko wirtualne o takich samych wymaganiach i działało

Uwaga: spróbuj wyszukać to wirtualne środowisko Pythona

mohamed salah
źródło
0

Napotkałem ten sam problem. Aktywowałem środowisko wirtualne $ source bin / aktywuj

potem pokazała mi wersję Django

Nie trzeba było niczego instalować.


mamata @ mamta-inspire-all: ~ / dodjango $ python -m django --version / usr / bin / python: Brak modułu o nazwie django

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

Nie znaleziono polecenia „django-admin”, ale można je zainstalować za pomocą:

sudo apt install python-django-common

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

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

bin obejmują 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


mamumath
źródło
Spróbuj edytować odpowiedź przy pomocy AskUbuntu.
NIMISHAN
-1

Mam ten problem, kiedy zmieniłem nazwę folderu projektu w PyCharm.

  1. Karta Terminal przestała wchodzić do środowiska wirtualnego ( venvfolder). Aby to naprawić, poszedłem do Settings -> Project -> Projecttłumacza i zmieniłem tam folder.
  2. Django „zniknął”. django-admin --versionnie odpowiedział. Aby to naprawić, zrobiłem pip install djangow venv.

Pomogło.

tivnet
źródło