django import error - Nenhum módulo chamado core.management

187

Ok, eu vejo muitos desses erros por aí. Eu tentei tudo o que sei fazer e ainda tenho que descobrir isso.

Estou trabalhando em um servidor de desenvolvimento executando python 2.5 e Django 1.3. O Django 1.3 foi instalado usando o python setup.py install após descompactar o download do tar.gz.

Tudo funciona bem, raramente preciso executar, manage.pymas estou tentando usar o novo aplicativo staticfiles e estou tendo problemas.

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, então eu tenho PATHproblema.

Na instalação do Django, verifiquei meu site-packagesdiretório.

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

Ok, vamos verificar o que eu tenho, eco $ PYTHON_PATH estava vazio, então eu configurei

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

Ainda sem sorte. Vamos verificar o que sys.path tem a dizer

>>> 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']

caminho, eu até criei /usr/lib/python2.5/site-packages/django.pth com o conteúdo

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

Alguém tem pistas sobre o que está acontecendo aqui?

Encontrei um link simbólico no caminho que estava atrapalhando, mas não para um novo erro.

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

Eu também tentei criar um novo projeto para ver se havia algum problema e obter o mesmo erro utils.version.

Nó lateral: Unode do #django me ajudou um pouco, configurou o virtualenv na mesma máquina e passou pelos erros, ainda não tendo certeza do que está acontecendo com essa instalação real aqui, mas parece não estar nos projetos do django, mas no django Instalação / python.

grantk
fonte
1
O que acontece quando você digita import djangono shell python?
Silencioso1mezzo 18/05
@ silent1mezzo - Ahh esqueci de jogar isso, sem queixas do shell python na importação django
Grantk
1
Você correu python manage.py syncdb?
Silencioso1mezzo 18/05
@silentmezzo - Não nesta máquina, o fiz na minha máquina pessoal antes de mover o projeto.
Grantk
Tente executá-lo primeiro. Às vezes, isso pode causar o erro.
Silencioso1mezzo 18/05

Respostas:

169

Se, como eu, você está executando seu django em um virtualenv, e recebendo esse erro, observe o seu manage.py. A primeira linha deve definir o executável python usado para executar o script. Esse deve ser o caminho para o python do virtualenv, mas é algo errado como / usr / bin / python, que não é o mesmo caminho e usará o ambiente global de python (e os pacotes estarão ausentes). Apenas mude o caminho para o executável python no seu virtualenv.

Você também pode substituir sua linha shebang por #!/usr/bin/env python. Isso deve usar o ambiente python e o interpretador adequados, desde que você ative seu virtualenv primeiro (presumo que você saiba como fazer isso).

Steve K
fonte
27
ou execute como<path-to-my-env>/bin/python manage.py runserver
geekQ
Bem manchado! Esse foi exatamente o problema!
Kstratis
7
Além disso, er ... lembre-se de ativar o virtualenv. D'oh!
Alex Mcp
De qualquer forma, você pode fornecer um exemplo do caminho do seu executável python no seu virtualenv. Por exemplo, meu caminho para o meu ambiente virtual é / Users / Chris / virtualenv / my_first_venv e eu criei a primeira linha #! / Users / Chris / virtualenv / my_first_venv /, mas ainda assim recebo o mesmo erro. Eu acho que pode estar fazendo algo de errado com o shebang ...
Chris
Você pode ter esquecido de adicionar o executável python no final do caminho: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonou algo assim?
Steve K
40

Se você estiver em um virtualenv, precisará ativá-lo antes de poder executar ./manage.py 'command'

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

se você configurar o trabalho em .bash_profile ou .bashrc

workon yourvirtualenvname

* Por favor, não edite seu arquivo manage.py talvez funcione da maneira correta e não possa fornecer erros futuros

elin3t
fonte
Isso também aconteceu comigo depois de queimar metade da noite lutando para fazê-lo funcionar. Muito obrigado @ elin3t.
Yax
30

Eu tive o mesmo problema porque estava instalando o Django como superusuário, portanto não no meu virtualenv. Você não deveria fazersudo pip install Django

Em vez disso, instale-o desta maneira:

$ source ./bin/activate
$ pip install Django
aviggiano
fonte
Mas sem o sudo você obtém: OSError: [Erro 13] Permissão negada: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal
15

Por favor, reinstale o django com o pip:

sudo pip install --upgrade django==1.3

(Substitua 1.3 à sua versão do django)

satels
fonte
25
Não recomendado. O uso sudoda instalação nos diretórios do sistema interferirá nos pacotes nativos e provavelmente quebrará pelo menos algumas partes da instalação do python. Eu recomendaria virtualenv.
Noufal Ibrahim
11

Como se sabe, esse era um problema de caminho.

a base dos meus pacotes personalizados compartilhava um nome com um diretório definido em / etc / profile. Os pacotes estavam em um local diferente, no entanto, para o servidor da web. Portanto, removi as entradas incorretas do meu $ PYTHONPATH e estava pronto!

Obrigado pela ajuda.

grantk
fonte
10

Outro motivo possível para esse problema é que seu sistema operacional executa python3 por padrão.

Você precisa fazer explicitamente: python2 manage.py

ou você precisa editar o shebang de manage.py, assim:

#!/usr/bin/env python2

ou se você estiver usando python3:

#!/usr/bin/env python3
nozes
fonte
para mim, eu tinha que fazer#!/usr/bin/env python2.7
Vic
8

Eu tive esse erro ao tentar executar um sistema incorporado (usando django, é claro) em um Raspberry Pi 2 (e não em uma VM )

Executando isso:

 sudo pip install Django

Feito o truque!

  • apenas no caso de um colega usando Raspbian / Jessie conseguir isso
d1jhoni1b
fonte
6

Você provavelmente está usando virtualenvwrapper . Não se esqueça de selecionar seu ambiente executando:

$ workon env_name
MK
fonte
4

Para mim, meu servidor estava usando o Python 2.4. Eu simplesmente procurei o Python 2.7, que estava instalado no meu servidor, e criei um alias.

alias python=python2.7

Se você precisa saber mais, encontrei a solução aqui

el_stack
fonte
4

Eu estava tendo o mesmo problema enquanto tentava criar um novo aplicativo. Se você escrever python manage.py startapp myapp, procurará usr / bin / python. Mas você precisa desse " python ", localizado no diretório / bin do seu caminho de env virtual . Eu resolvi isso mencionando o caminho python do virtualenv da seguinte maneira:

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

Tente alterar sua primeira linha de manage.py.

mudança

#!/usr/bin/python

de

#!/usr/bin/env python
Gabriel Cavalcante
fonte
3
O contrário me ajudou. Substituído #!/usr/bin/env pythonpor#!/usr/bin/python
curlyreggie
env é um bin unix comum para obter os links bin do ambiente OS, dependendo da configuração do SO ou da instalação python, o bin pode residir em um caminho diferente de / usr / bin / e sua solução não funcionará, também não funcionará se o bin 'env' está instalado em um local diferente.
Gabriel Cavalcante
3
python3 manage.py runserver

Verifique a versão do Python

sim
fonte
3

Resolvi-o!!!

Depois de pesquisar por idades e tentar todas essas outras sugestões que não funcionaram, finalmente encontrei a solução para minha configuração.

Minha configuração / cenário:

  • Windows, Python27
  • Meu projeto django é retirado via svn
  • ao executar python manage.py runserver na nova pasta, recebi o erro de importação
  • python manage.py runserver costumava trabalhar na pasta original (da qual eu confirmaria alterações) até que eu a excluísse

Solução

Remova qualquer pasta denominada django no mesmo diretório do manage.py

Está certo ... assim que removi a pasta "django", que continha apenas um arquivo __init__.py ... eu poderia executar o servidor novamente!

Não tenho idéia do porquê

Dan
fonte
Como uma pasta com um arquivo __init__.py é tratada como um módulo python . Então você não deve nomear o implícita diretório módulo django
kaushal agrawal
2

Para aqueles que usam o Django 1.6 ou mais recente, observe que execute_manager foi removido . Há uma solução postada na segunda resposta SO aqui .

Owen
fonte
2

Armazene o caminho python python em uma variável e execute.Isso incluiria os pacotes ausentes.

python_path= `which python` 
$python_path manage.py runserver
Nischay Gulati
fonte
1

Eu tive um problema parecido. PyCharm não pôde executar o servidor, mas eu poderia executá-lo na linha de comando. Tentei qual python e depois verifiquei se o PyCharm era o mesmo intérprete e tudo funcionou bem.

Viagem Denton
fonte
1

Este erro geralmente ocorre quando o django não está instalado. Se você já instalou o django, mas ainda está recebendo o mesmo erro, deve estar trabalhando em um ambiente virtual separado. Você também precisa instalar o django em seu ambiente virtual. Quando você estiver no shell da máquina virtual, faça o seguinte:

pip install django

É porque a máquina virtual possui um sistema de arquivos separado, que não reconhece o django, mesmo que esteja instalado no seu sistema.

Rai Ammad Khan
fonte
1

Corrigi esse problema alterando #PATH = "$ VIRTUAL_ENV / bin: $ PATH" para PATH = "$ PATH: $ VIRTUAL_ENV / bin" Por razões que não são óbvias para mim, o executável python no diretório virtualenv não vê django, mas normalmente python instalado faz.

Lowlysquib
fonte
1

================================== SOLUÇÃO =============== ==========================

Primeiro a ir: virtualenv

executando o comando: bin de origem / ativar

e instale o django porque você está recebendo o erro relacionado a 'import django':

pip install django

Então corra:

python manage.py runserver

(Nota: altere 'runserver' para o nome do programa que você deseja executar)

Para o mesmo problema, funcionou no meu caso. ================================== Sinopse =============== ==========================

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 o tratamento da exceção acima, ocorreu outra exceção:

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 o tratamento da exceção acima, ocorreu outra exceção:

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

Durante o tratamento da exceção acima, ocorreu outra exceção:

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?

APÓS A INSTALAÇÃO do 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

DEPOIS DE RESOLVER:

(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

Boa sorte!!

Rakesh Kumar
fonte
0

seu projeto é criado usando uma versão antiga do django-admin.py, mais antiga que o django1.3

para corrigir isso, crie outro projeto django e copie seu manage.py e cole-o no antigo

MBarsi
fonte
@dontario. Não é este, eu criei este projeto usando meu computador pessoal com a versão 1.3.0 final. Existem alguns projetos importados que foram criados com uma versão mais antiga, poderia ser?
Grantk
Tentei copiar meu novo mange.py do novo aplicativo para o aplicativo antigo que também é usado e ainda assim recebo o mesmo erro.
GrantK '18
0

Concordei completamente que este é um problema de caminho, mas fwiw, eu tive esse mesmo erro. Isso ocorreu devido ao erro de usar um caminho relativo para o meu executável Python ao configurar meu ambiente virtual. Eu tinha feito isso:

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

Em vez disso, tive que dar o caminho completo para o executável Python.

HTH, Harlin

Harlin
fonte
0

fonte ~ / blog-venv / bin / ativar

escolha seu virtualenv para substituir "blog-venv" aqui.

windmaomao
fonte
Graças, que resolveu o meu problema com relação a este:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen
0

Certifique-se de estar executando a instância correta do Python com os diretórios certos no caminho. No meu caso, esse erro resultou da execução do pythonexecutável por acidente - eu havia instalado o Django sob a python2.7estrutura e as bibliotecas. O mesmo poderia acontecer como resultado do virtualenv também.

Chris Johnson
fonte
0

Ok, então fica assim:

Você criou um ambiente virtual e o módulo django pertence apenas a esse ambiente. Como o virtualenv se isola de todo o resto, você está vendo isso.

passe por isso para obter mais assistência:

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

1.Você pode alternar para o diretório em que seu ambiente virtual está armazenado e, em seguida, executar o módulo django.

2.Alternativamente, você pode instalar o django globalmente no seu python-> site-packages executando pip ou easy_install

Comando usando pip: pip install django

então faça o seguinte:

import django print (django.get_version ()) (dependendo da versão do python que você usa.Isso para o python da série 3+)

e então você pode executar isto: python manage.py runserver e verificar no seu navegador digitando: localhost: 8000 e você verá a página do django.

Espero que isto ajude.

Ashish
fonte
0

Incluí o nome do novo aplicativo na lista INSTALLED_APPS no settings.py "before" Emiti o comando startapp. Depois de remover a entrada da lista, eu poderia criar o aplicativo.

Milad M
fonte
0

Resolvi esse problema usando o comando 'django-admin' da seguinte maneira:

django-admin startproject _project_name

basta remover o ".py" anexado ao "django-admin"

M Haziq
fonte
0

Ter um aplicativo chamado também sitepode reproduzir esse problema.

Christian Gutierrez Sierra
fonte
0

Eu entendi isso porque esqueci que instalei o Django usando pip -U, então ele estava disponível apenas para o usuário que executava meu aplicativo Django. Para executar o manage.py eu tive que fazer

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

todos vocês não mencionaram um caso em que alguém "como eu" instalaria o django antes de instalar o virtualenv ... então, para todas as pessoas do meu tipo, se você fez isso ... reinstale o django depois de ativar o virtualenv..i espero que isto ajude

Dever
fonte
Esta não é uma solução. É um comentário sobre outra solução de Steve k.
Shanemgrey 23/05
Foi o que aconteceu para mim e isso é como eu fixa-lo ... é um engano qualquer iniciante pode cair
Dever