Ok, widzę wiele takich błędów. Próbowałem wszystkiego, co wiem, i jeszcze tego nie rozgryzłem.
Pracuję na serwerze programistycznym z systemem Python 2.5 i Django 1.3. Django 1.3 został zainstalowany przy użyciu instalacji python setup.py po rozpakowaniu pliku tar.gz.
Wszystko działa dobrze, rzadko muszę uruchamiać, manage.py
ale próbuję użyć nowej aplikacji staticfiles i mam problemy.
python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 2, in <module>
from django.core.management import execute_manager
ImportError: No module named core.management
Ok, więc mam PATH
problem.
Z instalacji Django sprawdzam dwukrotnie mój site-packages
katalog.
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages
Ok, sprawdźmy co mam, echo $ PYTHON_PATH było puste, więc ustawiłem
export PYTHON_PATH=/usr/lib/python2.5/site-packages/django
Wciąż nie ma szczęścia. Pozwala sprawdzić, co ma do powiedzenia sys.path
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']
ścieżka tam jest, nawet stworzyłem /usr/lib/python2.5/site-packages/django.pth z zawartością
cat /usr/lib/python2.5/site-packages/django.pth
/usr/lib/python2.5/site-packages/django/
Czy ktoś ma jakieś wskazówki na temat tego, co się tutaj dzieje?
Znalazłem dowiązanie symboliczne na ścieżce, która przeszkadzała, ale nie do nowego błędu.
python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
version=get_version(),
File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
from django.utils.version import get_svn_revision
ImportError: No module named utils.version
Próbowałem także utworzyć nowy projekt, aby sprawdzić, czy są jakieś problemy i uzyskać ten sam błąd utils.version.
Węzeł boczny: Unode z #django trochę mi pomógł, skonfigurowałem virtualenv na tej samej maszynie i ominąłem błędy, więc wciąż nie jestem pewien, co jest grane z tą rzeczywistą instalacją tutaj, ale wydaje się, że nie jest to w projektach django, ale w django / python install.
źródło
import django
w powłokę Pythona?python manage.py syncdb
?Odpowiedzi:
Jeśli, podobnie jak ja, uruchamiasz django w virtualenv i otrzymujesz ten błąd, spójrz na swój
manage.py
. Pierwszy wiersz powinien definiować plik wykonywalny Pythona używany do uruchomienia skryptu. Powinna to być ścieżka do Pythona virtualenv, ale jest to coś złego, takiego jak / usr / bin / python, która nie jest tą samą ścieżką i będzie używać globalnego środowiska python (i pakietów będzie brakować). Po prostu zmień ścieżkę na ścieżkę do pliku wykonywalnego Pythona w swoim virtualenv.Możesz również zastąpić swoją linię shebang
#!/usr/bin/env python
. To powinno korzystać z odpowiedniego środowiska Pythona i interpretera, pod warunkiem, że najpierw aktywujesz virtualenv (zakładam, że wiesz, jak to zrobić).źródło
<path-to-my-env>/bin/python manage.py runserver
#!/Users/Chris/virtualenv/my_first_venv/bin/python
czy coś w tym stylu?Jeśli jesteś w virtualenv, musisz go aktywować, zanim będziesz mógł uruchomić ./manage.py 'command'
jeśli skonfigurujesz workon w .bash_profile lub .bashrc
* Proszę nie edytować pliku manage.py. Może działa nieprawidłowo i może powodować błędy w przyszłości
źródło
Miałem ten sam problem, ponieważ instalowałem Django jako superużytkownik, a więc nie w mojej virtualenv. Nie powinieneś tego robić
sudo pip install Django
Zamiast tego zainstaluj go w ten sposób:
źródło
Zainstaluj ponownie django z pipem:
(Zastąp 1.3 do swojej wersji django)
źródło
sudo
do instalacji w katalogach systemowych będzie kolidować z pakietami natywnymi i najprawdopodobniej zepsuje przynajmniej niektóre części instalacji Pythona. Polecam virtualenv.Jak wiadomo, był to problem ze ścieżką.
podstawa moich niestandardowych pakietów współdzieliła nazwę z katalogiem ustawionym w / etc / profile. Pakiety znajdowały się jednak w innym miejscu dla serwera WWW. Więc usunąłem nieprzyzwoite wpisy z mojego $ PYTHONPATH i byłem gotowy!
Dzięki za pomoc.
źródło
Innym możliwym powodem tego problemu jest to, że system operacyjny domyślnie uruchamia Python3.
Albo musisz jawnie zrobić:
python2 manage.py
lub musisz edytować shebang
manage.py
, w ten sposób:lub jeśli używasz python3:
źródło
#!/usr/bin/env python2.7
Miałem ten błąd podczas próby uruchomienia systemu osadzonego (oczywiście przy użyciu Django) na Raspberry Pi 2 (a nie na maszynie wirtualnej) )
Uruchamianie tego:
Udało się!
źródło
Prawdopodobnie używasz virtualenvwrapper . Nie zapomnij wybrać środowiska, uruchamiając:
źródło
Dla mnie mój serwer używał Pythona 2.4. Po prostu sprawdziłem Python 2.7, który został zainstalowany na moim serwerze, i utworzyłem alias.
Jeśli chcesz dowiedzieć się więcej, znalazłem rozwiązanie tutaj
źródło
Ten sam problem występował podczas próby utworzenia nowej aplikacji. Jeśli piszesz
python manage.py startapp myapp
, szuka usr / bin / python. Ale potrzebujesz tego „ python ”, który znajduje się w katalogu / bin Twojej wirtualnej ścieżki env . Rozwiązałem to, wymieniając ścieżkę python virtualenv w następujący sposób:źródło
Spróbuj zmienić pierwszą linię manage.py.
Zmiana
przez
źródło
#!/usr/bin/env python
przez#!/usr/bin/python
Sprawdź wersję Pythona
źródło
Rozwiązałem to!!!
Po wyszukaniu wieku i wypróbowaniu wszystkich innych sugestii, które nie działały, w końcu znalazłem rozwiązanie dla mojej konfiguracji.
Moja konfiguracja / scenariusz:
Rozwiązanie
Usuń folder o nazwie django z tego samego katalogu manage.py
To prawda ... jak tylko usunąłem folder „django”, który zawierał tylko plik __init__.py ... mogłem ponownie uruchomić serwer!
Nie mam pojęcia, dlaczego
źródło
Jeśli używasz Django 1.6 lub nowszego, zauważ, że execute_manager został usunięty . Istnieje rozwiązanie zamieszczone w drugiej SO odpowiedzi tutaj .
źródło
Przechowuj ścieżkę Pythona w zmiennej i wykonaj. Obejmuje to w przeciwnym razie brakujące pakiety.
źródło
Miałem podobny problem. PyCharm nie mógł uruchomić serwera, ale mogłem uruchomić go z wiersza poleceń. Próbowałem, który python, a następnie upewniłem się, że PyCharm był tym samym tłumaczem, a potem wszystko działało OK.
źródło
Ten błąd występuje zwykle, gdy django nie jest zainstalowany. Jeśli masz już zainstalowany django, ale nadal pojawia się ten sam błąd, musisz pracować w osobnym środowisku wirtualnym. Musisz także zainstalować django w swoim wirtualnym środowisku. Gdy jesteś w powłoce maszyny wirtualnej, po prostu zrób to:
pip zainstaluj django
Jest tak, ponieważ maszyna wirtualna ma osobny system plików, nie rozpoznaje django, nawet jeśli jest zainstalowane w systemie.
źródło
Rozwiązałem ten problem, zmieniając #PATH = "$ VIRTUAL_ENV / bin: $ PATH" na PATH = "$ PATH: $ VIRTUAL_ENV / bin" Z powodów, które nie są dla mnie oczywiste, plik wykonywalny Pythona w katalogu virtualenv nie widzi django, ale normalnie Zainstalowany Python robi.
źródło
================================== ROZWIĄZANIE =============== ==========================
Pierwsze goto: virtualenv
uruchamiając polecenie: bin źródłowy / aktywuj
i zainstaluj django, ponieważ pojawia się błąd związany z „importowaniem django”:
Następnie uruchomić:
(Uwaga: zmień „runserver” na nazwę programu, który chcesz uruchomić)
W przypadku tego samego problemu zadziałało w moim przypadku. ================================== Streszczenie =============== ==========================
Podczas obsługi powyższego wyjątku wystąpił inny wyjątek:
Podczas obsługi powyższego wyjątku wystąpił inny wyjątek:
Podczas obsługi powyższego wyjątku wystąpił inny wyjątek:
PO INSTALACJI django:
PO ROZWIĄZANIU:
Powodzenia!!
źródło
Twój projekt jest tworzony przy użyciu starej wersji pliku django-admin.py, starszej niż django 1.3
aby to naprawić, utwórz kolejny projekt django, skopiuj plik manage.py i wklej go do starego
źródło
Zgadzam się całkowicie, że jest to problem ze ścieżką, ale fwiw, miałem ten sam błąd. Było to spowodowane błędem użycia ścieżki względnej dla mojego pliku wykonywalnego Python podczas konfigurowania środowiska wirtualnego. Zrobiłem to:
Zamiast tego musiałem podać pełną ścieżkę do pliku wykonywalnego Python.
HTH, Harlin
źródło
źródło ~ / blog-venv / bin / aktywuj
wybierz virtualenv, aby zastąpić „blog-venv” tutaj.
źródło
File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Upewnij się, że korzystasz z właściwej instancji Pythona z właściwymi katalogami na ścieżce. W moim przypadku ten błąd wynikał z przypadkowego uruchomienia
python
pliku wykonywalnego - faktycznie zainstalowałem Django wpython2.7
ramach i bibliotekach. To samo może się zdarzyć również w wyniku virtualenv.źródło
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, stąd to widzisz.
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 środowisko wirtualne, a następnie uruchomić moduł django.
2. Alternatywnie możesz zainstalować django globalnie w swoich pakietach python-> site, uruchamiając pip lub easy_install
Polecenie za pomocą pip: pip install django
następnie zrób to:
importuj 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 runserver i sprawdzić w przeglądarce internetowej, wpisując: localhost: 8000 i powinieneś zobaczyć stronę zasilaną przez django.
Mam nadzieję że to pomoże.
źródło
Dodałem nazwę nowej aplikacji do listy INSTALLED_APPS w pliku settings.py „przed” wydałem polecenie startapp. Po usunięciu wpisu na liście mogę utworzyć aplikację.
źródło
Rozwiązałem ten problem, używając polecenia „django-admin” w następujący sposób:
django-admin startproject _project_name
po prostu usuń plik „.py” dołączony do „django-admin”
źródło
Wywołanie aplikacji
site
może odtworzyć ten problem.źródło
Otrzymałem to, ponieważ zapomniałem, że zainstalowałem Django za pomocą
pip -U
, więc był dostępny tylko dla użytkownika, który uruchomił moją aplikację Django. Aby uruchomić manage.py musiałem to zrobićźródło
wszyscy nie wspomnieliście o przypadku, w którym ktoś „jak ja” zainstalowałby django przed zainstalowaniem virtualenv ... więc dla wszystkich moich znajomych, jeśli to zrobiłeś ... zainstaluj ponownie django po aktywacji virtualenv..i mam nadzieję że to pomoże
źródło