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 rodar o 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 linhafrom __future__ import unicode_literals
no topo do arquivo para torná-lo compatível com Python 3.2, que não suporta o prefixou''
.
Recursos relacionados: