2015-05-22 27 views
20

Sto cercando di eseguire python manage.py runserver su un'applicazione Django ho e ottenere questo errore:ImportError: No module named django.core.management quando si utilizza manage.py

Traceback (most recent call last): 
File "manage.py", line 8, in <module> 
from django.core.management import execute_from_command_line 
ImportError: No module named django.core.management 

Ecco l'uscita del pip freeze | grep -i django per dimostrare che in effetti è installato Django:

Django==1.6.5 
django-cached-authentication-middleware==0.2.0 
django-cors-headers==1.1.0 
django-htmlmin==0.7.0 
django-static-precompiler==0.9 
djangorestframework==2.3.14 

Inoltre, il tentativo di eseguire /usr/local/bin/python2.7 manage.py runserver produce lo stesso errore.

+0

hai eseguito il comando da dove si trova manage.py? – Mox

+0

E quante versioni dei pitoni sono in esecuzione sulla tua macchina? – Mox

+1

stai usando un ambiente virtuale per questo scopo? puoi condividere i dettagli del tuo file delle impostazioni? –

risposta

9

Per risolvere il mio problema ho usato la seguente riga nel mio .zprofile:

export PYTHONPATH=/usr/local/lib/python2.7/site-packages 

stavo cercando di importare Django e non è stato trovato, e fare quanto sopra risolto il problema.

+0

nel caso in cui venga visualizzato un errore che 'esportazione non è riconosciuta come comando interno o esterno, programma eseguibile o file batch, cambia EXPORT in SET, cioè imposta PYTHONPATH = /usr/local/lib/python2.7/site-packages –

+0

c'è un modo per configurare il percorso Python in modo permanente? perché devo eseguire il comando sopra ogni volta che apro una finestra cmd –

+0

Questo ha funzionato perfettamente per me. L'unica soluzione che ho trovato finora ha funzionato. – dspacejs

21

possibili problemi che possono causare il problema:

  1. PYTHONPATH non è ben configurato, configurarlo si dovrebbe fare:

    export PYTHONPATH=/usr/local/lib/python2.7/site-packages 
    
  2. hai dimenticato la linea #!/usr/bin/env python all'inizio del gestire .py

  3. Se stai lavorando su virtualenv hai dimenticato di attivare l'ambiente virtuale per eseguire i comandi manage.py (Puoi hanno installato Django sul sistema ma non sul virtualenv)

    source path/to/your/virtualenv/bin/activate 
    

    o

    workon env_name 
    
  4. Hai Python 2.7 e Python 3.4 scherzi con il pacchetto

  5. Stai utilizzando un molto vecchio Python 2.4 e dovresti dire al sistema di usare il tuo Python 2.7 con:

    alias python=python2.7 
    

Alcune volte reinstallare/aggiornare Django risolve alcuni di questi problemi.

Si consiglia di eseguire

python -c "import django; print(django.get_version())" 

per controllare se Django è installato sul vostro PC o il vostro virtualenv se si sta utilizzando uno

Potete trovare altre soluzioni in altre domande simili:

+0

Grazie per la tua risposta. Non sono sicuro su come configurare correttamente il mio PYTHONPATH. Puoi darmi più informazioni? Per quanto riguarda il resto, ho # 2 corretto, per # 3 non sto usando un ambiente virtuale, quindi non dovrebbe essere il problema, per # 4 e # 5 ho 'python' in esecuzione una shell con Python 2.7.6 quindi penso che sto bene lì. Inoltre, ho reinstallato Django ma sto ancora avendo il problema. – Zach

+0

Nel mio caso era il numero 3: ho dimenticato di attivare l'ambiente virtuale. Un semplice: 'source bin/activate', e risolto :) – J0ANMM

1

Questo errore è dovuto all'ambiente dell'utente. Effettivamente aggiungo semplicemente il percorso del bin dell'ambiente virtuel al PERCORSO e il problema è stato risolto.

PATH=/bin/of_virtualenvironment/:$PATH 
3

Ho risolto questo stesso errore eseguendo il comando seguente:

python3.4 manage.py runserver 

E il comando precedente eseguito con successo per me. Quindi, quello che puoi provare è, se stai usando python 2.7, allora sostituisci 3.4 con 2.7. Spero che questo ti aiuti.

+0

questo mi ha salvato la giornata ... Dopo molte difficoltà, ho appena cambiato 'python2.7 manage.py changepassword' invece di' python manage.py changepassword' e voilá! – PavoDive

+0

Sono felice che abbia funzionato per te. Buona giornata!! – zenwraight

0

mi sono imbattuto lo stesso problema quando ho fatto tutta la messa a punto e correre per Django con python3 ma correva il seguente comando:

$ python manage.py migrate 

risolto il problema utilizzando una versione coerente di Python:

$ python3 manage.py migrate 
Operations to perform: 
    Apply all migrations: sessions, auth, admin, contenttypes 
Running migrations: 
    Rendering model states... DONE 
    Applying contenttypes.0001_initial... OK 
    Applying auth.0001_initial... OK 
    Applying admin.0001_initial... OK 
    Applying admin.0002_logentry_remove_auto_add... OK 
    Applying contenttypes.0002_remove_content_type_name... OK 
    Applying auth.0002_alter_permission_name_max_length... OK 
    Applying auth.0003_alter_user_email_max_length... OK 
    Applying auth.0004_alter_user_username_opts... OK 
    Applying auth.0005_alter_user_last_login_null... OK 
    Applying auth.0006_require_contenttypes_0002... OK 
    Applying auth.0007_alter_validators_add_error_messages... OK 
    Applying sessions.0001_initial... OK 

Altri comandi che ho incontrato prima di questo sono stati:

python3 -m pip install django 
django-admin startproject learning_site 
python3 manage.py runserver 0.0.0.0:8000 
0

in cui il vostro django file risiede, controllare la prima linea di django-admin.py:

#!/usr/bin/env python 

Se si utilizza python 3+, python qui può riferisce python2 qui. Quindi controlla con quale python installi django.

ls -l $(which -a python3) 

Se non avete python3 installato e non legata come python, cambiare la prima linea shebang in

#!/usr/bin/env python3 
+0

Penso di fraintendere la tua domanda dato che usi 'python manage.py' per indicare l'ambiente. Basta controllare con quale 'python' si installa django e si usa' python'. Potrebbe essere necessario modificare PYTHONPATH o PATH per indicare quale Python usare. – Izana

0

Il problema diretto è che il pacchetto Django manca. Per me, dato che stavo eseguendo django in virtualenv, questo problema si verifica dopo aver rinominato la mia directory di lavoro.

Reinstallare l'ambiente funzionava per me.

0

Inoltre, assicurarsi di non aver rovinato il tuo .bashrc con alias es. Si otterrebbe questo tipo di errori se .bashrc contiene qualcosa come alias python="/usr/bin/python3".

1

Se si utilizza virtualenv e si esegue manage.py runserver nel sistema Windows, cmd utilizzerà python del sistema, non il python in virtualenv. Perché se si installa python nel sistema, cmd utilizzerà automaticamente python installato nel sistema, non in python in virtualenv. Quindi se si utilizza virtualenv in Windows. è necessario correre

>python .\manage.py runserver 
0

ho scoperto che avrei potuto importare il modulo Django dall'interprete Python, ma non si poteva django-admin.py importarlo quando viene eseguito da linea di comando.

Ho confermato che stavo usando l'interprete python nel mio ambiente virtuale.

Stavo usando una versione a 64 bit di python. Disinstallare e installare la versione a 32 bit, quindi ricreare il mio venv risolto questo per me.