Django - “nenhum módulo chamado django.core.management”

104

Recebo o seguinte erro ao tentar executar o Django a partir da linha de comando.

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

Todas as ideias sobre como resolver isso?

Krasimir
fonte
O que exatamente você está tentando executar, qual versão do Python, versão do Django etc ...?
Jon Clements
A versão do meu host local é Python 2.6.6 e 1.4.3 Dyango. O servidor Python é 2.6.6 e para Dyango não pode verificar se sabe como verificar?
Krasimir
Recebi este erro aleatoriamente ao tentar fazer migrações e estava no meu ambiente virtual com o Django instalado. Simplesmente executei o comando novamente e funcionou.
aalaap de
Eu tenho esse mesmo erro. Eu tenho o django instalado, mas ele está instalado no diretório dist-packages. O Dockerfile usa a imagem base do ubuntu. Então, eu atualizei o Dockerfile para adicionar isso, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"mas ainda não carreguei o aplicativo django.
alltej

Respostas:

55

Parece que você não tem o django instalado. Você deve verificar o diretório produzido por este comando:

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

Para ver se você tem os pacotes django lá.

Se não houver uma pasta django dentro dos pacotes do site, então você não tem o django instalado (pelo menos para essa versão do python).

É possível que você tenha mais de uma versão do python instalada e o django esteja dentro de outra versão. Você pode descobrir todas as versões de python se digitar pythone pressionar TAB. Aqui estão todos os diferentes python que tenho.

$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

Você pode fazer o comando acima para cada versão do python e olhar dentro do diretório site-packages de cada um para ver se algum deles tem o django instalado. Por exemplo:

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 por acaso você encontrar django dentro de, digamos, python 2.6, tente seu comando original com

python2.6 manage.py ...
RaviU
fonte
Isso é o que vem logo após o comando "/usr/lib/python2.6/site-packages"
Krasimir
Vá para a pasta "/usr/lib/python2.6/site-packages" e veja se há uma pasta chamada django dentro.
RaviU
Tudo o mais que não seja Django: D
Krasimir
Olá, por favor, verifique minha resposta editada. Talvez seu django esteja em outra versão do python.
RaviU
1
Se você instalou o django usando o virtualenv ou enquanto estava em um ambiente virtual, você deve estar no ambiente virtual para que ele seja executado, a menos que você o tenha instalado globalmente no sistema.
Ramon Suarez de
41
sudo pip install django --upgrade 

fez o truque para mim.

Árvore de Código
fonte
4
Sua resposta funcionou para mim, então eu dei um voto positivo. No entanto, apenas a sua resposta por si só não foi suficiente, porque quando eu corri sudo pip install django --upgradeele me deu um novo erro: No module named psycopg2. Então, eu corri sudo pip install psycopg2 --upgradee funcionou.
Dorian Dore
2
Acontece que eu não tinha o django instalado ... Embora já o tivesse usado antes na máquina. Esquisito.
James111
Eu tive um problema de tempo limite, então eu fiz sudo pip install --default-timeout=100 django --upgradee tudo correu bem.
Zap
Se você estiver usando "pyenv", precisará do seguinte:pip install django --upgrade --user
Inyoka
30

Recebi o mesmo erro e corrigi-lo desta maneira:

Tive que ativar meu ambiente virtual usando o seguinte comando

source python2.7/bin/activate
Anagha
fonte
22

Muito provavelmente, na sua manage.pyprimeira linha começa com o !/usr/bin/pythonque significa que você está usando o sistema global python, em vez do seu ambiente virtual.

então substitua

/usr/bin/python

com

~/projectpath/venv/bin/python

e você deve ser bom.

mgPePe
fonte
Obrigado. Ajudou.
Serg Smyk
Meu projeto tinha um script bash que chamava uma parte do aplicativo e, nesse script bash, python startapptive que alterá-lo para /path/to/venv/bin/python startappe funcionou. Obrigado por apontar isto!!
Gordster
13

bem, eu enfrentei o mesmo erro hoje depois de instalar o virtualenv e o django. Para mim, eu tinha usado sudo ( sudo pip install django ) para instalar o django e estava tentando executar o manage.py runserver sem sudo . Acabei de adicionar sudo e funcionou. :)

user1578297
fonte
10

Você está usando um ambiente virtual com o Virtual Wrapper? Você está em um Mac?

Se sim, tente isto:

Digite o seguinte em sua linha de comando para iniciar o ambiente virtual e, em seguida, trabalhe nele

1.)

source virtualenvwrapper.sh

ou

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Nota (de um novato) - não coloque colchetes em torno do nome do ambiente

Pete Varley
fonte
Levei cerca de dois segundos para descobrir que o virtualenv não estava habilitado, mas esse era o meu problema ... então upvote desde que eu apertei o botão do google uma vez e não li nada que apareceu.
RobotHumans de
7

Estou tendo o mesmo problema ao executar o comando-

python manage.py startapp <app_name>

mas o problema comigo é que eu estava executando esse comando fora do ambiente virtual. Portanto, apenas ative seu ambiente virtual primeiro e execute o comando novamente -

Rahul Satal
fonte
1
Meu projeto tinha um script bash que chamava uma parte do aplicativo e, nesse script bash, python startapptive que alterá-lo para /path/to/venv/bin/python startappe funcionou.
Gordster
5

Este problema ocorre quando o django não está instalado no seu computador. Quando o django não está instalado, o que significa que o módulo django.core.management também não está instalado. Então não encontrou esse módulo e dá erro.
Para resolver este problema, devemos instalar o django usando pip. Abra o cmd da linha de comando (no Windows) e digite como

pip install django

Este comando irá instalar o django em seu computador. Se você não instalou o pip. você deve instalar o pip. Aqui, como instalar o pip no windows

Harun ERGUL
fonte
5

Eu experimento a mesma coisa e é isso que eu faço.

Primeiro minha instalação de

pip install -r requisitos.txt

não está no meu ambiente ativo. Então eu fiz é ativar meu ambiente e executar novamente o

pip install -r requisitos.txt

Jek Hatulan
fonte
4

Ok, então é 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 mudar para o diretório onde seu ambiente virtual está armazenado e então executar o módulo django.

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

Comando usando pip: pip install django

então faça isto:

import django print (django.get_version ()) (dependendo de qual versão de python você usa. Isto para python série 3+)

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

Espero que isto ajude.

Ashish
fonte
3

Caso isso seja útil para outras pessoas ... Eu tive esse problema porque meu virtualenv padronizou para python2.7 e eu estava chamando Django usando Python3 enquanto usava Ubuntu.

para verificar qual python meu virtualenv estava usando:

$ which python3
>> /usr/bin/python3

criou um novo virtualenv com python3 especificado (usando o wrapper virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

o caminho do python agora deve apontar para o virtualenv python:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3
sk8asd123
fonte
2

Isso também acontece se você alterar a estrutura do diretório do seu projeto Python (eu fiz isso e depois fiquei intrigado com a mudança no comportamento). Se você fizer isso, você precisará alterar uma linha em seu arquivo / bin / activate. Então, digamos que seu projeto estava em

/User/me/CodeProjects/coolApp/

e seu arquivo de ativação está em

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

quando você configurou seu projeto, então você mudou seu projeto para

/User/me/CodeProjects/v1-coolApp/

ou alguma coisa. Você então precisaria abrir

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

encontre a linha onde diz

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

e mude para

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

antes de reativar

adamadam
fonte
2

No meu caso, estou usando o Ubuntu. O problema pode ser que eu não tenho permissão para gravar nessa pasta como um usuário normal. Você pode simplesmente adicionar o sudoantes do seu comando e ele deve funcionar perfeitamente. No meu caso sudo python manage.py syncdb.

Exausta
fonte
2

Eu tive o mesmo problema e recebi esta mensagem porque estava executando "manage.py runserver" enquanto "python manage.py runserver" corrigiu.

Mahsan
fonte
2
Observe que se o Python 3 for usado, precisa ser python3 manage.py runserver. Caso contrário, o erro de importação ainda estará lá.
rbaleksandar
2

Eu tive o mesmo problema e a seguir funcionou bem, você deve navegar na pasta principal do seu projeto e digitar:

source bin/activate 
GoldFish
fonte
1

tinha o mesmo comando problem.run 'python manage.py migrate' que o root. funciona bem com acesso root (sudo python manage.py migrate)

Hemanth Gowda
fonte
1
Isso é como tratar o sintoma, não a causa. Se o sudo funcionar, provavelmente é um problema de permissão.
evandentremont
Certamente, apenas uma forma de diagnosticar o problema.
Hemanth Gowda
1

Meu caso eu usei o pyCharm 5 no mac. Eu também tive esse problema e depois de executar esse comando meu problema foi resolvido

sudo pip install django --upgrade 
Amir
fonte
1

Você pode tentar assim: python3 manage.py migrate(certifique-se de estar no src/diretório)

Você também pode tentar com pip install -r requirements.txt(certifique-se de ver o requirements.txtarquivo ao digitar lsapós a migração

Se afinal ainda não funcionar, tente pip install django

Espero que ajude

7 ferrugem
fonte
0

Você deve escolher seu projeto antes de executar o servidor, digite isto workon your_project_name e python manage.py runserver

Syiwa Wahyu Saputra
fonte
-1

Conflitos de propriedade de arquivo e diretório causarão problemas aqui. Certifique-se de que a propriedade dos diretórios e arquivos no projeto pertence ao usuário atual. (Você pode alterá-los usando o comando chown com a opção -R.) Tente executar o comando novamente: isso resolveu o problema para mim ao executar o exemplo "Primeiro aplicativo Django":

python manage.py startapp polls
Keesar
fonte
-1

Eu tenho o mesmo problema ao tentar usar o servidor de execução python manage.py . No meu caso, uso apenas sudo su . Use o terminal como root e tente novamente e funcionará parcialmente. Então eu uso o comando python manage.py migrate e ele corrige.

user314165
fonte