Django - "nessun modulo denominato django.core.management"


104

Ottengo il seguente errore quando provo a eseguire Django dalla riga di comando.

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

Qualche idea su come risolvere questo problema?


Cosa stai cercando di eseguire esattamente, quale versione di Python, versione di Django ecc ...?
Jon Clements

La versione del mio host locale è Python 2.6.6 e 1.4.3 Dyango. Il server Python è 2.6.6 e per Dyango non puoi controllare se sai come controllare?
Krasimir

Ho ricevuto questo errore in modo casuale durante il tentativo di effettuare le migrazioni ed ero nel mio ambiente virtuale con Django installato. Ho semplicemente eseguito di nuovo il comando e ha funzionato.
aalaap

Ho lo stesso errore. Ho installato django ma è installato nella directory dist-packages. Il Dockerfile utilizza l'immagine di base di Ubuntu. Quindi ho aggiornato il Dockerfile per aggiungerlo, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"ma continua a non caricare l'app django.
alltej

Risposte:


55

Sembra che django non sia installato. Dovresti controllare la directory prodotta da questo comando:

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

Per vedere se ci sono i pacchetti django lì dentro.

Se non c'è una cartella django all'interno di site-packages, allora non hai installato django (almeno per quella versione di python).

È possibile che tu abbia più di una versione di python installata e django sia all'interno di un'altra versione. Puoi scoprire tutte le versioni di python se digiti pythone poi premi TAB. Ecco tutti i diversi python che ho.

$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

Puoi eseguire il comando precedente per ogni versione di python e guardare all'interno della directory dei pacchetti del sito di ciascuna per vedere se qualcuno di loro ha installato django. Per esempio:

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

Se ti capita di trovare django all'interno di say python2.6, prova il tuo comando originale con

python2.6 manage.py ...

Questo è ciò che viene subito dopo il comando "/usr/lib/python2.6/site-packages"
Krasimir

Vai nella cartella "/usr/lib/python2.6/site-packages" e controlla se c'è una cartella chiamata django all'interno.
RaviU

Tutto il resto non Django: D
Krasimir

Ciao, controlla la mia risposta modificata. Forse il tuo django è in un'altra versione di python.
RaviU

1
Se hai installato django usando virtualenv o mentre ti trovi in ​​un ambiente virtuale, devi essere nell'ambiente virtuale per eseguirlo, a meno che tu non lo abbia installato nel sistema a livello globale.
Ramon Suarez

41
sudo pip install django --upgrade 

ha fatto il trucco per me.


4
La tua risposta ha funzionato per me, quindi ho dato un voto positivo. Tuttavia, solo solo la tua risposta non è stato sufficiente, perché quando mi sono imbattuto sudo pip install django --upgrademi ha dato un nuovo errore: No module named psycopg2. Quindi, ho corso sudo pip install psycopg2 --upgradee ha funzionato.
Dorian Dore

2
Si è scoperto che django non era installato ... Anche se l'avevo già usato sulla macchina. Strano.
James111

Ho avuto un problema di timeout, quindi l'ho fatto sudo pip install --default-timeout=100 django --upgradee tutto è andato liscio.
Zap

Se stai usando "pyenv" avrai bisogno di quanto segue:pip install django --upgrade --user
Inyoka

30

Ho ricevuto lo stesso errore e l'ho risolto in questo modo:

Ho dovuto attivare il mio ambiente virtuale utilizzando il seguente comando

source python2.7/bin/activate

22

Molto probabilmente nella tua manage.pyprima riga inizia con il !/usr/bin/pythonche significa che stai usando il sistema globale python piuttosto che quello nel tuo ambiente virtuale.

quindi sostituisci

/usr/bin/python

con

~/projectpath/venv/bin/python

e dovresti essere bravo.


Grazie. Ha aiutato.
Serg Smyk

Il mio progetto aveva uno script bash che chiamava una parte dell'app, e in quello script bash era python startappcosì ho dovuto cambiarlo in /path/to/venv/bin/python startappe ha funzionato. Grazie per averlo fatto notare !!
Gordster

13

bene, ho riscontrato lo stesso errore oggi dopo aver installato virtualenv e django. Per me era che avevo usato sudo ( sudo pip install django ) per installare django, e stavo cercando di eseguire il runerver manage.py senza sudo . Ho appena aggiunto sudo e ha funzionato. :)


10

Stai utilizzando un ambiente virtuale con Virtual Wrapper? Sei su un Mac?

Se è così, prova questo:

Immettere quanto segue nella riga di comando per avviare l'ambiente virtuale e quindi lavorarci sopra

1.)

source virtualenvwrapper.sh

o

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Nota (da un principiante): non inserire parentesi attorno al nome dell'ambiente


Mi ci sono voluti circa due secondi per capire che virtualenv non era abilitato, ma questo era il mio problema ... quindi vota a favore da quando ho premuto google il pulsante google una volta e non ho letto nulla che è venuto fuori.
RobotHumans

7

Sto riscontrando lo stesso problema durante l'esecuzione del comando-

python manage.py startapp <app_name>

ma il problema con me è che stavo eseguendo quel comando dall'ambiente virtuale, quindi attiva prima il tuo ambiente virtuale ed esegui di nuovo il comando -


1
Il mio progetto aveva uno script bash che chiamava una parte dell'app, e in quello script bash era python startappcosì ho dovuto cambiarlo in /path/to/venv/bin/python startappe ha funzionato.
Gordster

5

Questo problema si verifica quando django non è installato sul tuo computer. Quando django non è installato, significa che anche il modulo django.core.management non è installato. Quindi non ha trovato questo modulo e dà errore.
Per risolvere questo problema dovremmo installare django usando pip. Apri la riga di comando cmd (su Windows) e digita come

pip install django

Questo comando installerà django nel tuo computer. Se non hai installato pip. dovresti installare pip. Ecco come installare pip su Windows


5

Vivo la stessa cosa e questo è quello che faccio.

Prima la mia installazione di

pip install -r requisiti.txt

non è nel mio ambiente attivo. Quindi ho fatto è attivare il mio ambiente quindi eseguire di nuovo il file

pip install -r requisiti.txt


4

Va bene così va così:

Hai creato un ambiente virtuale e il modulo django appartiene solo a quell'ambiente, poiché virtualenv si isola da tutto il resto, quindi stai vedendo questo.

passare attraverso questo per ulteriore assistenza:

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

1.Puoi passare alla directory in cui è archiviato il tuo ambiente virtuale e quindi eseguire il modulo django.

2.In alternativa puoi installare django globalmente nei tuoi pacchetti python-> site eseguendo pip o easy_install

Comando utilizzando pip: pip install django

quindi fai questo:

import django print (django.get_version ()) (a seconda della versione di python che usi, questo per la serie python 3+)

e poi puoi eseguire questo: python manage.py runserver e controlla sul tuo browser web digitando: localhost: 8000 e dovresti vedere la pagina alimentata da django.

Spero che questo ti aiuti.


3

Nel caso in cui questo fosse utile per gli altri ... Ho avuto questo problema perché il mio virtualenv era impostato su python2.7 e stavo chiamando Django usando Python3 mentre utilizzavo Ubuntu.

per verificare quale python stava usando il mio virtualenv:

$ which python3
>> /usr/bin/python3

creato un nuovo virtualenv con python3 specificato (utilizzando il wrapper virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

il percorso python dovrebbe ora puntare al python virtualenv:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3

2

Ciò accade anche se modifichi la struttura delle directory del tuo progetto python (l'ho fatto e poi sono rimasto perplesso sul cambiamento di comportamento). In tal caso, sarà necessario modificare una riga nel file / bin / activation. Quindi, diciamo che il tuo progetto era a

/User/me/CodeProjects/coolApp/

e il tuo file di attivazione è in

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

quando hai impostato il tuo progetto, hai cambiato il tuo progetto in

/User/me/CodeProjects/v1-coolApp/

o qualcosa. Dovresti quindi aprire

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

trova la riga dove dice

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

e cambiarlo in

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

prima di riattivare


2

Nel mio caso, sto usando Ubuntu. Il problema può essere che non ho il permesso di scrivere in quella cartella come un normale utente. Puoi semplicemente aggiungere sudoprima il tuo comando e dovrebbe funzionare perfettamente. Nel mio caso sudo python manage.py syncdb.


2

Ho avuto lo stesso problema e il motivo per cui ho ricevuto questo messaggio era perché stavo facendo "manage.py runserver" mentre facendo "python manage.py runserver" è stato risolto.


2
Nota che se viene utilizzato Python 3, deve essere python3 manage.py runserver. In caso contrario, l'errore di importazione sarà ancora presente.
rbaleksandar

2

Ho avuto lo stesso problema e quanto segue ha funzionato bene, dovresti navigare nella cartella principale del tuo progetto quindi digitare:

source bin/activate 

1

aveva lo stesso problema. eseguire il comando "python manage.py migrate" come root. funziona bene con l'accesso root (sudo python manage.py migrate)


1
È come trattare il sintomo, non la causa. Se sudo funziona è probabilmente un problema di autorizzazioni.
evandentremont

Sicuramente, solo un modo per diagnosticare il problema.
Hemanth Gowda

1

Nel mio caso ho usato pyCharm 5 su mac. Ho anche avuto questo problema e dopo aver eseguito questo comando il mio problema è stato risolto

sudo pip install django --upgrade 

1

Puoi provarlo in questo modo: python3 manage.py migrate(assicurati di essere nella src/directory)

Puoi anche provare con pip install -r requirements.txt(assicurati di vedere il requirements.txtfile quando digiti lsdopo il file migrate

Se dopo tutto continua a non funzionare, prova pip install django

Spero che sia d'aiuto


0

Devi prima scegliere il tuo progetto prima di eseguire il server, workon your_project_name poi digita questo python manage.py runserver


-1

Il conflitto di proprietà di file e directory causerà problemi qui. Assicurati che la proprietà delle directory e dei file nel progetto sia dell'utente corrente. (Puoi cambiarli usando il comando chown con l'opzione -R.) Prova a rieseguire il comando: questo ha risolto il problema per me durante l'esecuzione dell'esempio "First Django App":

python manage.py startapp polls

-1

Ho avuto lo stesso problema provando a usare il runerver python manage.py . Nel mio caso uso solo sudo su . Usa il terminale come root e riprova e funziona parzialmente. Quindi uso python manage.py migrate comand e lo risolve.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.