Soluções de Problemas

Essa página contém alguns conselhos sobre erros e problemas comumente encontrados durante o desenvolvimento de aplicações em Django.

Problemas ao executar django-admin

“Comando não encontrado: django-admin”

O django-admin deve estar no caminho do seu sistema caso tenha instalado o Django via: python setup.py. Caso ele não esteja no seu caminho você pode encontrá-lo em site-packages/django/bin, onde site-packages é um diretório dentro do seu projeto em Python. Considere criar um link simbólico django-admin a partir de algum lugar em seu caminho, tal como /usr/local/bin.

Se o django-admin não funciona mas, django-admin.py sim, você provavelmente está usando uma versão antiga do Django que não coincide com a versão desta documentação. django-admin é novo no Django 1.7.

Permissões no Mac OS X

Se você está usando Mac OS X talvez você veja a mensagem: “permission denied” quando você estiver tentando executar django-admin. Isso ocorre porque, em sistemas parecidos com OS X baseados em Unix um arquivo precisa ser marcado como “executável” antes dele poder ser executado como um programa. Para fazer isso, abra o Terminal.app e navegue (usando o comando cd) até o diretório em que o django-admin está instalado, então logo após execute o comando: sudo chmod +x django-admin.

Variados

Estou recebendo um UnicodeDecodeError. O que estou fazendo de errado?

Estas classes de erros acontecem quando um bytestring contendo sequências não-ASCII é transformado em uma sequência de caracteres Unicode e a codificação especificada está incorreta. A saída geralmente se parece com isso:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position ?:
ordinal not in range(128)

A resolução depende principalmente do contexto, entretanto aqui estão as duas armadilhas comuns que produzem este erro:

  • O locale padrão do sistema pode estar definido como ASCII, como o locale “C” nos sistemas baseados em UNIX (você pode checar com o comando locale). Se este é o caso, por favor, consulte a documentação do sistema para aprender como mudar para o locale: UTF-8.

  • Você criou um raw bytestrings, o que é fácil de fazer em Python 2:

    my_string = 'café'
    

    Use o prefixo u'' ou até melhor, adicione a linha from __future__ import unicode_literals no topo do arquivo para torná-lo compatível com Python 3.2, que não suporta o prefixo u''.

Recursos relacionados:

Back to Top