Django - „brak modułu o nazwie django.core.management”

104

Podczas próby uruchomienia Django z wiersza poleceń pojawia się następujący błąd.

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

Jakieś pomysły, jak to rozwiązać?

Krasimir
źródło
Co dokładnie próbujesz uruchomić, jaką wersję Pythona, wersję Django itp ...?
Jon Clements
Wersja mojego lokalnego hosta to Python 2.6.6 i 1.4.3 Dyango. Serwer Pythona to 2.6.6 i dla Dyango nie mogę sprawdzić, czy wiesz, jak to sprawdzić?
Krasimir
Otrzymałem ten błąd losowo podczas próby migracji i byłem w swoim wirtualnym środowisku z zainstalowanym Django. Po prostu ponownie uruchomiłem polecenie i zadziałało.
aalaap
Mam ten sam błąd. Mam zainstalowane django, ale jest ono zainstalowane w katalogu dist-packages. Plik Dockerfile używa obrazu podstawowego Ubuntu. Więc zaktualizowałem plik Dockerfile, aby to dodać, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"ale nadal nie ładuje aplikacji django.
alltej

Odpowiedzi:

55

Wygląda na to, że nie masz zainstalowanego django. Powinieneś sprawdzić katalog utworzony przez to polecenie:

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

Aby sprawdzić, czy masz tam pakiety django.

Jeśli w pakietach witryn nie ma folderu django, oznacza to, że nie masz zainstalowanego django (przynajmniej dla tej wersji Pythona).

Możliwe, że masz zainstalowaną więcej niż jedną wersję Pythona, a django znajduje się w innej wersji. Możesz znaleźć wszystkie wersje Pythona, wpisując, pythona następnie naciskając TAB. Oto wszystkie różne Pythony, które mam.

$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

Możesz wykonać powyższe polecenie dla każdej wersji Pythona i zajrzeć do katalogu site-packages każdej z nich, aby sprawdzić, czy któryś z nich ma zainstalowane django. Na przykład:

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()"

Jeśli zdarzy ci się znaleźć django w powiedzmy python2.6, wypróbuj swoje oryginalne polecenie z

python2.6 manage.py ...
RaviU
źródło
To jest to, co pojawia się zaraz po poleceniu „/usr/lib/python2.6/site-packages”
Krasimir,
Przejdź do folderu „/usr/lib/python2.6/site-packages” i zobacz, czy w środku znajduje się folder o nazwie django.
RaviU
Wszystko inne nie Django: D
Krasimir
Cześć, sprawdź moją zredagowaną odpowiedź. Może twoje django jest w innej wersji Pythona.
RaviU
1
Jeśli zainstalowałeś django za pomocą virtualenv lub będąc w środowisku wirtualnym, musisz być w środowisku wirtualnym, aby działało, chyba że zainstalowałeś go w systemie globalnie.
Ramon Suarez
41
sudo pip install django --upgrade 

załatwił sprawę dla mnie.

Drzewo kodów
źródło
4
Twoja odpowiedź zadziałała dla mnie, więc zagłosowałem za nią. Jednak tylko Twój sama odpowiedź nie wystarczyło, bo kiedy prowadził sudo pip install django --upgradeon dał mi nowy błąd: No module named psycopg2. Więc pobiegłem sudo pip install psycopg2 --upgradei to załatwiło sprawę.
Dorian Dore
2
Okazało się, że nie mam zainstalowanego django ... Mimo że używałem go wcześniej na maszynie. Dziwne.
James111,
Miałem problem z przekroczeniem limitu czasu, więc tak zrobiłem sudo pip install --default-timeout=100 django --upgradei wszystko poszło gładko.
Zap
Jeśli używasz "pyenv", potrzebujesz:pip install django --upgrade --user
Inyoka
30

Otrzymałem ten sam błąd i naprawiłem go w ten sposób:

Musiałem aktywować moje środowisko wirtualne za pomocą następującego polecenia

source python2.7/bin/activate
Anagha
źródło
22

Najprawdopodobniej w manage.pypierwszym wierszu zaczyna się od, !/usr/bin/pythonco oznacza, że ​​używasz systemowego globalnego języka Python, a nie tego w środowisku wirtualnym.

więc wymień

/usr/bin/python

z

~/projectpath/venv/bin/python

i powinieneś być dobry.

mgPePe
źródło
Dzięki. Pomogło.
Serg Smyk
Mój projekt miał skrypt basha, który wywoływał jedną część aplikacji, aw tym skrypcie bash był, python startappwięc musiałem go zmienić /path/to/venv/bin/python startappi zadziałał. Dziękuję za zwrócenie uwagi !!
Gordster
13

cóż, napotkałem ten sam błąd dzisiaj po zainstalowaniu virtualenv i django. Dla mnie było to, że użyłem sudo ( sudo pip install django ) do zainstalowania django i próbowałem uruchomić uruchomieniowy manage.py bez sudo . Właśnie dodałem sudo i zadziałało. :)

user1578297
źródło
10

Czy używasz środowiska wirtualnego z Virtual Wrapper? Czy używasz komputera Mac?

Jeśli tak, spróbuj tego:

Wpisz następujące polecenie do wiersza poleceń, aby uruchomić środowisko wirtualne, a następnie pracuj nad nim

1.)

source virtualenvwrapper.sh

lub

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Uwaga (od nowicjusza) - nie umieszczaj nawiasów wokół nazwy swojego środowiska

Pete Varley
źródło
Zajęło mi około dwóch sekund, aby dowiedzieć się, że virtualenv nie jest włączony, ale to był mój problem ... więc głosuj za, odkąd raz kliknąłem w Google przycisk Google i nie przeczytałem niczego, co się pojawiło.
RobotHumans
7

Mam ten sam problem podczas uruchamiania polecenia-

python manage.py startapp <nazwa_aplikacji>

ale problem ze mną polega na tym, że uruchamiałem to polecenie poza środowiskiem wirtualnym, więc po prostu najpierw aktywuj swoje środowisko wirtualne i uruchom polecenie ponownie -

Rahul Satal
źródło
1
Mój projekt miał skrypt basha, który wywoływał jedną część aplikacji, aw tym skrypcie bash był, python startappwięc musiałem go zmienić /path/to/venv/bin/python startappi zadziałał.
Gordster
5

Ten problem występuje, gdy django nie jest zainstalowane na Twoim komputerze. Gdy django nie jest zainstalowane, co oznacza, że ​​moduł django.core.management również nie jest zainstalowany. Więc nie znalazł tego modułu i daje błąd.
Aby rozwiązać ten problem, powinniśmy zainstalować django za pomocą pip. Otwórz cmd wiersza poleceń (w systemie Windows) i wpisz jako

pip install django

To polecenie zainstaluje django na twoim komputerze. Jeśli nie masz instalacji pip. powinieneś zainstalować pip. Tutaj jak zainstalować pip w systemie Windows

Harun ERGUL
źródło
5

Doświadczam tego samego i to właśnie robię.

Najpierw moja instalacja

pip install -r Requirements.txt

nie ma w moim aktywnym środowisku. Tak zrobiłem, aktywowałem moje środowisko, a następnie ponownie uruchomiłem

pip install -r Requirements.txt

Jek Hatulan
źródło
4

Okej, więc wygląda to tak:

Stworzyłeś środowisko wirtualne, a moduł django należy tylko do tego środowiska, ponieważ virtualenv izoluje się od wszystkiego innego, więc widzisz to.

przejdź przez to, aby uzyskać dalszą pomoc:

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

1. Możesz przejść do katalogu, w którym przechowywane jest Twoje środowisko wirtualne, a następnie uruchomić moduł django.

2. Alternatywnie możesz zainstalować django globalnie w python-> site-packages, uruchamiając pip lub easy_install

Polecenie używające pip: pip install django

następnie zrób to:

import django print (django.get_version ()) (w zależności od używanej wersji Pythona, dotyczy to serii python 3+)

a następnie możesz uruchomić to: python manage.py runerver i sprawdzić swoją przeglądarkę internetową wpisując: localhost: 8000 i powinieneś zobaczyć stronę zasilaną przez django.

Mam nadzieję że to pomoże.

Ashish
źródło
3

Na wypadek, gdyby było to pomocne dla innych ... Miałem ten problem, ponieważ mój virtualenv domyślnie ustawiał na python2.7 i dzwoniłem do Django przy użyciu Python3 podczas korzystania z Ubuntu.

aby sprawdzić, którego Pythona używa mój virtualenv:

$ which python3
>> /usr/bin/python3

utworzył nowy virtualenv z określonym pythonem3 (używając wrappera virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

ścieżka pythona powinna teraz wskazywać na python virtualenv:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3
sk8asd123
źródło
2

Dzieje się tak również, jeśli zmienisz strukturę katalogów swojego projektu w Pythonie (zrobiłem to, a następnie zastanawiałem się nad zmianą w zachowaniu). Jeśli to zrobisz, będziesz musiał zmienić wiersz w swoim pliku / bin /ivate. Więc powiedz, że twój projekt był o godzinie

/User/me/CodeProjects/coolApp/

a twój plik aktywacyjny jest pod adresem

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

podczas konfigurowania projektu zmieniłeś projekt na

/User/me/CodeProjects/v1-coolApp/

lub coś. Musisz wtedy otworzyć

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

znajdź linię, w której jest napisane

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

i zmień go na

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

przed reaktywacją

Adamadam
źródło
2

W moim przypadku używam Ubuntu. Problem może polegać na tym, że nie mam uprawnień do zapisu w tym folderze jako zwykły użytkownik. Możesz po prostu dodać sudoprzed komendą i powinno działać idealnie. W moim przypadku sudo python manage.py syncdb.

Wyczerpany
źródło
2

Miałem ten sam problem i powodem, dla którego otrzymałem ten komunikat, było to, że robiłem „manage.py runerver”, podczas gdy „python manage.py runerver” go naprawiało.

MAhsan
źródło
2
Zauważ, że jeśli używany jest Python 3, to musi być python3 manage.py runserver. W przeciwnym razie nadal będzie występował błąd importu.
rbaleksandar
2

Miałem ten sam problem i poniższe działały dobrze, powinieneś przejść do głównego folderu w swoim projekcie niż wpisać:

source bin/activate 
Złota Rybka
źródło
1

miał ten sam problem. polecenie run „python manage.py migrate” jako root. działa dobrze z dostępem roota (sudo python manage.py migrate)

Hemanth Gowda
źródło
1
To rodzaj leczenia objawu, a nie przyczyny. Jeśli sudo działa, prawdopodobnie jest to problem z uprawnieniami.
evandentremont
Na pewno sposób na zdiagnozowanie problemu.
Hemanth Gowda
1

Mój przypadek Użyłem pyCharm 5 na Macu. Miałem też ten problem i po uruchomieniu tego polecenia mój problem został rozwiązany

sudo pip install django --upgrade 
Amir
źródło
1

Możesz to wypróbować w następujący sposób: python3 manage.py migrate(upewnij się, że jesteś w src/katalogu)

Możesz także spróbować z pip install -r requirements.txt(spraw, aby requirements.txtplik był widoczny podczas wpisywania lspo migracji

Jeśli mimo wszystko to nadal nie zadziała, spróbuj pip install django

Mam nadzieję, że to pomoże


źródło
0

Musisz najpierw wybrać swój projekt przed uruchomieniem serwera, wpisz go workon your_project_name następnie python manage.py runserver

Syiwa Wahyu Saputra
źródło
-1

Konflikt własności pliku i katalogu spowoduje tutaj problemy. Upewnij się, że własność katalogów i plików w projekcie należy do bieżącego użytkownika. (Możesz je zmienić za pomocą polecenia chown z opcją -R.) Spróbuj ponownie uruchomić polecenie: rozwiązało to problem podczas przeglądania próbki „Pierwsza aplikacja Django”:

python manage.py startapp polls
keesar
źródło
-1

Mam ten sam problem podczas próby użycia serwera uruchomieniowego manage.py w języku Python . W moim przypadku po prostu używam sudo su . Użyj terminala jako roota i spróbuj ponownie, ale działa częściowo. Więc używam polecenia python manage.py migrate i naprawiam to.

user314165
źródło