django import error - Nessun modulo chiamato core.management


187

Ok, vedo molti di questi errori in giro. Ho provato tutto quello che so di fare e devo ancora capirlo.

Sto lavorando su un server di sviluppo che esegue Python 2.5 e Django 1.3. Django 1.3 è stato installato utilizzando python setup.py install dopo aver decompresso il download tar.gz.

Tutto funziona bene, raramente ho bisogno di correre manage.pyma sto provando a usare la nuova app staticfiles e ho dei problemi.

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, quindi ho un PATHproblema.

Dall'installazione di Django ricontrollo la mia site-packagesdirectory.

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

Ok, vediamo cosa ho, echo $ PYTHON_PATH era vuoto, quindi l'ho impostato

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

Ancora niente fortuna. Vediamo cosa ha da dire 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']

percorso c'è, ho persino creato /usr/lib/python2.5/site-packages/django.pth con contenuti

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

Qualcuno ha idea di cosa sta succedendo qui?

Ho trovato un link simbolico più avanti nel percorso che si stava mettendo in mezzo, ma non ho trovato un nuovo errore.

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

Ho anche provato a creare un nuovo progetto per vedere se c'erano problemi e ottenere lo stesso errore utils.version.

Nodo laterale: Unode di #django mi ha aiutato un po ', ha impostato virtualenv sulla stessa macchina e ha superato gli errori, quindi ancora non sono sicuro di cosa sia successo con questa installazione attuale qui, ma sembra non essere nei progetti di django ma nel django / python install.


1
Cosa succede quando si digita import djangonella shell python?
silent1mezzo,

@ silent1mezzo - Ahh ha dimenticato di buttarlo, nessuna lamentela dalla shell di pitone su import django
grantk

1
Hai corso python manage.py syncdb?
silent1mezzo,

@silentmezzo - Non su questa macchina, l'ho fatto sulla mia macchina personale prima di spostare il progetto.
grantk,

Prova a eseguirlo prima. Questo a volte può causare l'errore.
silent1mezzo,

Risposte:


169

Se, come me, stai eseguendo il tuo django in un virtual virtual e stai ricevendo questo errore, guarda il tuo manage.py. La prima riga dovrebbe definire l'eseguibile python utilizzato per eseguire lo script. Questo dovrebbe essere il percorso del tuo python di virtualenv, ma è qualcosa di sbagliato come / usr / bin / python, che non è lo stesso percorso e utilizzerà l'ambiente globale di Python (e mancheranno i pacchetti). Basta cambiare il percorso nel percorso dell'eseguibile python in virtualenv.

Puoi anche sostituire la tua linea shebang con #!/usr/bin/env python. Questo dovrebbe usare l'ambiente e l'interprete di Python appropriati, a condizione che tu attivi prima virtualenv (suppongo che tu sappia come farlo).


27
o corri come<path-to-my-env>/bin/python manage.py runserver
geekQ,

Ben individuato! Quello era esattamente il problema!
kstratis,

7
Inoltre, ehm ... ricordati di attivare virtualenv. D'oh!
Alex Mcp,

Ad ogni modo potresti fornire un esempio del percorso del tuo eseguibile python in virtualenv. Ad esempio, il mio percorso verso il mio ambiente virtuale è / Users / Chris / virtualenv / my_first_venv e ho creato la prima riga #! / Users / Chris / virtualenv / my_first_venv /, ma ho ancora lo stesso errore. Penso che potrei fare qualcosa di sbagliato con lo shebang ...
Chris

Potresti aver dimenticato di aggiungere l'eseguibile python alla fine del percorso: #!/Users/Chris/virtualenv/my_first_venv/bin/pythono qualcosa del genere?
Steve K,

40

Se ti trovi in ​​un virtualenv devi attivarlo prima di poter eseguire ./manage.py 'command'

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

se si configura workon in .bash_profile o .bashrc

workon yourvirtualenvname

* per favore non modificare il tuo file manage.py forse funziona nel modo giusto e potrebbe darti errori futuri


Lo ha fatto anche per me dopo aver bruciato metà della notte lottando per farlo funzionare. Grazie mille @ elin3t.
Yax,

30

Ho avuto lo stesso problema perché stavo installando Django come superutente, quindi non nel mio virtualenv. Non dovresti farlosudo pip install Django

Invece, installalo in questo modo:

$ source ./bin/activate
$ pip install Django

Ma senza sudo ottieni: OSError: [Errno 13] Autorizzazione negata: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal

15

Per favore, reinstalla django con pip:

sudo pip install --upgrade django==1.3

(Sostituisci 1.3 con la tua versione di django)


25
Non consigliato. L'uso sudoper installare nelle directory di sistema interferirà con i pacchetti nativi e molto probabilmente interromperà alcune parti dell'installazione di Python. Consiglierei virtualenv.
Noufal Ibrahim,

11

Come noto questo era un problema di percorso.

la base dei miei pacchetti personalizzati condivideva un nome con una directory impostata in un profilo / etc /. I pacchetti si trovavano comunque in una posizione diversa per il server web. Quindi ho rimosso le voci offensive dal mio $ PYTHONPATH e sono andato bene!

Grazie per l'aiuto.


10

Un altro possibile motivo di questo problema è che il tuo sistema operativo esegue python3 per impostazione predefinita.

O devi fare esplicitamente: python2 manage.py

o devi modificare il shebang di manage.py, in questo modo:

#!/usr/bin/env python2

o se stai usando python3:

#!/usr/bin/env python3

per me, ho dovuto fare#!/usr/bin/env python2.7
Vic

8

Ho avuto questo errore durante il tentativo di eseguire un sistema incorporato (usando ovviamente django) su un Raspberry Pi 2 (e non su una VM )

Eseguendo questo:

 sudo pip install Django

Fatto il trucco!

  • nel caso in cui un collega che utilizza Raspbian / Jessie ottenga questo

6

Probabilmente stai usando virtualenvwrapper . Non dimenticare di selezionare l'ambiente eseguendo:

$ workon env_name

4

Per me, il mio server utilizzava Python 2.4. Ho semplicemente cercato Python 2.7, che è stato installato sul mio server, e ho creato un alias.

alias python=python2.7

Se hai bisogno di saperne di più, ho trovato la soluzione qui


4

Stavo riscontrando lo stesso problema mentre provavo a creare una nuova app. Se scrivi python manage.py startapp myapp, cerca usr / bin / python. Ma hai bisogno di questo " python " che si trova nella directory / bin del tuo percorso env virtuale . Ho risolto questo citando il percorso python di virtualenv in questo modo:

<env path>/bin/python manage.py startapp myapp

3

Prova a cambiare la tua prima linea di manage.py.

Modificare

#!/usr/bin/python

di

#!/usr/bin/env python

3
Il contrario mi ha aiutato. Sostituito #!/usr/bin/env pythonda#!/usr/bin/python
curlyreggie il

env è un bin unix comune per ottenere i collegamenti bin dell'ambiente os, a seconda della configurazione del sistema operativo o dell'installazione python il bin potrebbe risiedere in un percorso diverso rispetto a / usr / bin / e la soluzione non funzionerà, inoltre non funzionerà se il bin 'env' è installato in una posizione diversa.
Gabriel Cavalcante,

3
python3 manage.py runserver

Controlla la versione di Python


3

Risolto !!!

Dopo aver cercato per anni e provato tutti questi altri suggerimenti che non funzionavano, ho finalmente trovato la soluzione per la mia configurazione.

La mia configurazione / scenario:

  • Windows, Python27
  • Il mio progetto Django è stato verificato tramite svn
  • quando eseguo python manage.py RunServer nella nuova cartella, ho ricevuto l'errore di importazione
  • python manage.py RunServer funzionava nella cartella originale (da cui avrei commesso le modifiche) fino a quando non l'ho eliminato

Soluzione

Rimuovere qualsiasi cartella denominata django nella stessa directory di manage.py

Proprio così ... non appena ho rimosso la cartella "django" che conteneva solo un file __init__.py ... ho potuto eseguire nuovamente il server!

Non ho idea del perché


Perché una cartella con un file __init__.py viene trattata come un modulo python . Quindi non dovresti nominare la directory del modulo implicita django
kaushal agrawal


2

Memorizza il percorso python python in una variabile ed esegui. Ciò includerebbe i pacchetti altrimenti mancanti.

python_path= `which python` 
$python_path manage.py runserver

1

Ho avuto un problema simile. PyCharm non ha potuto eseguire il server ma ho potuto eseguirlo dalla riga di comando. Ho provato quale pitone e poi mi sono assicurato che PyCharm fosse lo stesso interprete e poi tutto ha funzionato bene.


1

Questo errore si verifica in genere quando django non è installato. Se hai già installato django ma ricevi ancora lo stesso errore, devi lavorare in un ambiente virtuale separato. Devi installare django anche nel tuo ambiente virtuale. Quando sei nella shell della macchina virtuale, fai semplicemente questo:

pip installa django

È perché la macchina virtuale ha un file system separato, non riconosce django anche se è installata sul tuo sistema.


1

Ho risolto questo problema cambiando #PATH = "$ VIRTUAL_ENV / bin: $ PATH" in PATH = "$ PATH: $ VIRTUAL_ENV / bin" Per ragioni non ovvie per me l'eseguibile python nella directory virtualenv non vede django ma normalmente installato python.


1

================================== SOLUZIONE =============== ==========================

Primo passaggio: virtualenv

eseguendo il comando: source bin / activ

e installa django perché stai ricevendo l'errore relativo a 'import django':

pip install django

Quindi eseguire:

python manage.py runserver

(Nota: cambiare "RunServer" con il nome del programma che si desidera eseguire)

Per lo stesso problema, ha funzionato nel mio caso. ================================== Sinossi =============== ==========================

ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Durante la gestione dell'eccezione sopra, si è verificata un'altra eccezione:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Durante la gestione dell'eccezione sopra, si è verificata un'altra eccezione:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Durante la gestione dell'eccezione sopra, si è verificata un'altra eccezione:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

DOPO L'INSTALLAZIONE di Django:

(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.1MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 4.7MB/s 
Installing collected packages: pytz, django

DOPO LA RISOLUZIONE:

(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976

In bocca al lupo!!


0

il tuo progetto è stato creato usando una vecchia versione di django-admin.py, più vecchia di django1.3

per risolvere questo problema crea un altro progetto django e copia il suo manage.py e incollalo nel vecchio


@dontario. Non questo, ho creato questo progetto usando il mio personal computer con 1.3.0 final. Ci sono alcuni progetti importati che sono stati creati con una versione precedente potrebbe essere?
grantk,

Ho provato a copiare il mio nuovo mange.py dalla nuova applicazione alla vecchia applicazione che viene utilizzata e ancora ottengo lo stesso errore.
grantk,

0

Sono completamente d'accordo sul fatto che si tratta di un problema relativo al percorso, ma prima ho riscontrato lo stesso errore. Era dovuto all'errore di utilizzare un percorso relativo per il mio eseguibile Python durante l'impostazione del mio ambiente virtuale. Avevo fatto questo:

virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute

Invece ho dovuto dare il percorso completo dell'eseguibile Python.

HTH, Harlin


0

fonte ~ / blog-venv / bin / activ

scegli il tuo virtualenv per sostituire "blog-venv" qui.


Grazie, ciò ha risolto il mio problema al riguardo:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen,

0

Assicurati di eseguire l'istanza corretta di Python con le directory giuste sul percorso. Nel mio caso, questo errore derivava pythondall'esecuzione accidentale dell'eseguibile: avevo effettivamente installato Django sotto il python2.7framework e le librerie. Lo stesso potrebbe accadere anche a seguito di virtualenv.


0

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.È possibile passare alla directory in cui è archiviato l'ambiente virtuale e quindi eseguire il modulo django.

2.In alternativa puoi installare django a livello globale sui tuoi pacchetti python-> site eseguendo pip o easy_install

Comando tramite pip: pip install django

quindi fai questo:

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

e quindi puoi eseguire questo: python manage.py corsa server e controllare sul tuo browser web digitando: localhost: 8000 e dovresti vedere la pagina alimentata da django.

Spero che questo ti aiuti.


0

Ho incluso il nome della nuova app nell'elenco INSTALLED_APPS in settings.py "prima" di aver emesso il comando startapp. Una volta rimossa la voce dell'elenco, ho potuto creare l'app.


0

Ho risolto questo problema usando invece il comando 'django-admin' come segue:

django-admin startproject _project_name

basta rimuovere il ".py" allegato a "django-admin"



0

Ho ottenuto questo perché ho dimenticato di aver installato Django usando pip -U, quindi era disponibile solo per l'utente che esegue la mia app Django. Per eseguire manage.py ho dovuto fare

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py

-2

tutti voi ragazzi non avete menzionato un caso in cui qualcuno "come me" avrebbe installato django prima di installare virtualenv ... quindi per tutte le persone del mio genere se lo faceste ... reinstallate django dopo aver attivato virtualenv..i spero che questo ti aiuti


Questa non è una soluzione. È un commento su un'altra soluzione di Steve k.
shanemgrey,

questo è quello che mi è successo ed è così che l'ho risolto ... è un errore in cui qualsiasi principiante potrebbe cadere
Dever
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.